Gearman的背景工作状态

时间:2013-05-01 15:30:50

标签: python jobs gearman

我有一个基于Web的脚本,它在Gearman中创建后台作业(执行SSH命令),这很成功。但是,当我尝试在后续Web请求中检索作业的状态时,我也无法做到。

我的创造工作看起来也很相似:

import gearman

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

从此我可以获得作业handleunique ID,这些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 )

然而,此操作失败,并且无法检索有关作业的任何信息(即状态始终为UNKNOWN)。来自jobreq的示例对象:

<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库和gearman-job-server 0.27。

0 个答案:

没有答案