我使用tornado.ioloop
celery
工人,因爲我需要使用mongodb。旋風IOLoop回調異常在芹菜工人無
class WorkerBase():
@gen.engine
def foo(self,args,callback)
bar = ['Python','Celery','Javascript','HTML']
# ... process something ....
callback(bar)
@gen.engine
def RunMyTask(self,args):
result = yield gen.Task(self.foo,args=args)
# Stop IOLoop instance
IOLoop.instance().stop()
@task(name="MyWorker",base=WorkerBase)
def CeleryWorker(args):
# This works because i'm adding base as WorkerBase
CeleryWorker.RunMyTask(args)
IOLoop.instance().start()
return True
當我通過調用任務它提供了一個錯誤說:
[2014-10-02 12:12:11,561: ERROR/Worker-4] Exception in callback None
Traceback (most recent call last):
File "/var/www/myapp/env/local/lib/python2.7/site-packages/tornado/ioloop.py", line 832, in start
fd_obj, handler_func = self._handlers[fd]
KeyError: 16
或
[2014-10-02 12:12:11,561: ERROR/Worker-4] Exception in callback None
Traceback (most recent call last):
File "/var/www/myapp/env/local/lib/python2.7/site-packages/tornado/ioloop.py", line 832, in start
fd_obj, handler_func = self._handlers[fd]
KeyError: 14
這些錯誤並不一致。有沒有任何提升條件?
感謝您的回答!事實證明,芹菜與IOLoop的效果不佳,因爲它與方法相互作用的方式。我們的主要原因是讓它與Motor一起工作。所以我們決定停止使用它,而不是使用PyMongo驅動程序。 – Maddy 2014-10-11 19:05:07