Gearman でバックグラウンド ジョブを作成する (SSH コマンドを実行する) Web ベースのスクリプトがありますが、これは成功しています。ただし、後続の Web リクエストでジョブのステータスを取得しようとすると、私も取得できません。
私の仕事の創造も似ています:
import gearman
gm = gearman.GearmanClient( ['127.0.0.1'] )
job = gm.submit_job( 'ssh_execute', 'shell-command', background = True )
これから、ジョブhandle
とunique
ID を取得できます。これらはリクエスト間で渡されます。これは成功し、ジョブは完了します。
グーグルとスタックオーバーフローから、ジョブのステータスを取得するための推奨事項は次のとおりです。
import gearman
gm = gearman.GearmanClient( ['127.0.0.1'] )
job = gearman.job.GearmanJob( gm, 'handle', 'ssh_execute', 'unqiue id', None )
req = gearman.job.GearmanJobRequest( job )
ただし、これは失敗し、ジョブに関する情報を取得できません (つまり、状態は alwaysUNKNOWN
です)。job
と のオブジェクトの例req
:
<GearmanJob connection/handle=(<gearman.client.GearmanClient object at 0x10f42db50>, 'H:proxy:1'), task=ssh_execute, unique=ce96e33721d5f3ef5394502b8c6621fa, data=None>
<GearmanJobRequest task='ssh_execute', unique='ce96e33721d5f3ef5394502b8c6621fa', priority=None, background=True, state='UNKNOWN', timed_out=False>
Ubuntu 12.04 でYelp Gearmanライブラリと0.27を使用しています。gearman-job-server