2017-08-03 3 views
0

私には2つのギアマン管理者があり、2人のクライアントに40人の従業員がいて、各クライアントには20人の従業員がいます。
これは問題です。私は10分ごとに2人の管理者のステータスを確認しますが、最初は同じ数のジョブを持っていますが、その数は異なるスピードで低下しますが、admin2はadmin1の3倍です。
job1に400000のジョブがあり、job2に400000のジョブがあり、job2がjob1よりも1時間遅れてトリガされた場合、それぞれが半分で終了しますもう1つの半分がadmin1の手にしっかりとしていたので、admin2のディスパッチがadmin1のジョブをディスパッチできるのであれば、これは災害です。私はjob1の仕上げを望みますが、半分を仕上げずに待っています。他の仕事の半分は終了する。Gearman - ディスパッチングの不均衡

これは一例です:
enter image description here

+1

したがって、速度が異なります。しかし*問題は何ですか? –

答えて

0

は、だから私は、その理由を見つけました。ギアマンサーバーでは、ワーカーがis_noop_sentではなくsleepとマークされているときにnoop msgを送信し、noop msgを送信した後にis_noop_sentはfalseに設定され、グラブジョブコマンドを取得するとtrueに設定されます。
しかし、python gearmanでは、ロックを取得できない場合はrecvループを制御するためにロックを使用し、pre_sleepコマンドを渡したり送信したりすると、サーバはそれ以上ワーカーを失うことはありません。

関連する問題