2

Gearman でバックグラウンド ジョブを作成する (SSH コマンドを実行する) Web ベースのスクリプトがありますが、これは成功しています。ただし、後続の Web リクエストでジョブのステータスを取得しようとすると、私も取得できません。

私の仕事の創造も似ています:

import gearman

gm  = gearman.GearmanClient( ['127.0.0.1'] )
job = gm.submit_job( 'ssh_execute', 'shell-command', background = True )

これから、ジョブhandleuniqueID を取得できます。これらはリクエスト間で渡されます。これは成功し、ジョブは完了します。

グーグルとスタックオーバーフローから、ジョブのステータスを取得するための推奨事項は次のとおりです。

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

4

0 に答える 0