为什么python gearman工作者不显示错误

2024-04-26 08:07:30 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中使用gearman时出现了一些错误:

import gearman

gm_worker = gearman.GearmanWorker(['localhost:4730'])

def task_listener_reverse(gearman_worker, gearman_job):
    print d
    print 'Reversing string: ' + gearman_job.data
    return gearman_job.data[::-1]

# gm_worker.set_client_id is optional
gm_worker.set_client_id('python-worker')
gm_worker.register_task('reverse', task_listener_reverse)

# Enter our work loop and call gm_worker.after_poll() after each time we timeout/see socket activity
gm_worker.work()

这里是print d中的错误,但它没有显示任何错误(如NameError: name 'd' is not defined)。失败状态返回gearman客户端。但在gearman worker上没有显示错误。它正在工作并接收新的连接

为什么会这样?你知道吗


Tags: clientidtaskdatais错误jobwork
1条回答
网友
1楼 · 发布于 2024-04-26 08:07:30

在Gearman协议中,失败的作业没有结果。你知道吗

您可以重写worker上的“on\u job\u exception”方法来执行任何您想要的日志记录。这是默认值,因此您只会得到一个带有false的失败作业

def on_job_exception(self, current_job, exc_info):
    self.send_job_failure(current_job)
    return False

或者您可以覆盖它并跳过self.send\作业\失败使用完整的代码和客户端,查看结果并确定结果是否有错误代码。但是所有的工作都不会失败。你知道吗

版本1.2

顺便说一句,在1.2目录树中,您可以执行以下操作:

齿轮和例外

以便在服务器上启用异常。这样就省去了客户机这样做的必要性。你知道吗

相关问题 更多 >