在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上没有显示错误。它正在工作并接收新的连接
为什么会这样?你知道吗
在Gearman协议中,失败的作业没有结果。你知道吗
您可以重写worker上的“on\u job\u exception”方法来执行任何您想要的日志记录。这是默认值,因此您只会得到一个带有false的失败作业
或者您可以覆盖它并跳过self.send\作业\失败使用完整的代码和客户端,查看结果并确定结果是否有错误代码。但是所有的工作都不会失败。你知道吗
版本1.2
顺便说一句,在1.2目录树中,您可以执行以下操作:
齿轮和例外
以便在服务器上启用异常。这样就省去了客户机这样做的必要性。你知道吗
相关问题 更多 >
编程相关推荐