4

Python-RQでマシン上のワーカー数を減らす良い方法は何ですか?

ドキュメントによると、マシン上のワーカー プロセスの 1 つに SIGINT または SIGTERM コマンドを送信する必要があります。

労働者を降ろす

SIGINTワーカーが( 経由でCtrl+C) またはSIGTERM( 経由で )受信した場合、ワーカーkillは現在実行中のタスクが終了するまで待機し、ワーク ループを停止して、自身の終了を適切に登録します。

このテイクダウン フェーズ中に、SIGINTまたはSIGTERMが再度受信された場合、ワーカーは強制的に子プロセスを終了します (送信しますSIGKILL) が、それでも自身の終了を登録しようとします。

これは、多くのコーディング オーバーヘッドを意味しているようです。

  • ワーカー プロセスの PID を追跡する必要がある
  • リモート マシンから SIGINT コマンドを送信する方法が必要

これをカスタムビルドする必要がありますか、それとも Python-RQ ライブラリまたは他の既存のライブラリを使用してこれを簡単に行う方法はありますか?

4

1 に答える 1

6
  1. を使用して、実行中のすべてのワーカーを取得しますrq.Worker.all()
  2. 殺したい労働者を選択
  3. 使用するos.kill(worker.pid, signal.SIGINT)
于 2013-03-03T09:12:57.537 に答える