2011-12-25 8 views
1

私はギアマンを使って、異なるサーバー上のデータを同期しています。 1台のメインサーバーと、たとえば10台のローカルサーバーがあります。可能な状況の1つを説明しましょう。ギアマンが作業を開始し、5つのジョブが完了したら、その5台のサーバーのデータが同期されているとします。次のジョブを開始すると、サーバーとの接続が失われ、現在は使用できません。ギヤマンの論理によって、それは何度も何度もやり直します。残りのジョブ(サーバー7,8,9,10の場合)は、6日目が完了するまで実行されません。最善の解決策は、仕事を延期し、それを待ち行列の終わりに置き、ジョブ7-10の作業を継続することです。Gearmanジョブを延期/延期する方法は?

誰かがそれを行う方法を知っている場合、方法を投稿してください。

PS:私はPythonを使用しています。

答えて

0

Gearmanジョブは、並列または直列で実行できます。単一のジョブを使用する代わりに、並行ジョブ(各サーバーに1つ)を使用する必要があります。

0
GearmanClient.submit_multiple_jobs(jobs_to_submit, background=False, wait_until_complete=True, max_retries=0, poll_timeout=None) 

この機能が役立ちます。 background = Trueにするだけです。

This linkも役立ちます。

+0

この場合、プロセスはブロックされますか? – megido

+1

はい、私はあなたにメソッドsubmit_multiple_jobsの例を与えます。 background = Trueを設定すると、コードの次の行に移動することができます。 – dennisyuan

関連する問題