2

我有一个基于 Web 的脚本,它在 Gearman 中创建了一个后台作业(执行 SSH 命令),这是成功的。但是,当我尝试在后续的 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 )

但是,这失败了,并且无法检索有关作业的任何信息(即状态始终为UNKNOWN)。job来自and的示例对象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