我要简短直截了当地说:
项目目录
proj/__init__.py
/tasks.py
/celery_app.py
芹菜_应用程序副本
^{pr2}$任务.py
from __future__ import absolute_import
from celery import current_app
from celery.contrib.methods import task_method
class A:
@current_app.task(filter=task_method)
def add(self,x, y):
return x + y
工作日志
-------------- celery@mycomp.localdomain v3.1.17 (Cipater)
---- **** -----
--- * *** * -- Linux-2.6.32-504.8.1.el6.x86_64-x86_64-with-centos-6.6-Final
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: proj:0x1dc12d0
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: amqp://
- *** --- * --- .> concurrency: 24 (prefork)
-- ******* ----
--- ***** ----- [queues]
-------------- .> celery exchange=celery(direct) key=celery
[tasks]
. proj.tasks.add
[2015-04-08 17:45:20,788: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2015-04-08 17:45:20,801: INFO/MainProcess] mingle: searching for neighbors
[2015-04-08 17:45:21,812: INFO/MainProcess] mingle: all alone
[2015-04-08 17:45:21,828: WARNING/MainProcess] celery@mycomp.localdomain ready.
[2015-04-08 17:50:25,610: INFO/MainProcess] Received task: proj.tasks.add[e0020f67-dbe7-4f6d-9547-a8ace36c2a2c]
[2015-04-08 17:50:25,635: INFO/MainProcess] Task proj.tasks.add[e0020f67-dbe7-4f6d-9547-a8ace36c2a2c] succeeded in 0.023062946042s: 4
python shell
>>> from proj.tasks import A
>>> a = A()
>>> s = a.add.delay(2,2)
>>> s
<AsyncResult: e0020f67-dbe7-4f6d-9547-a8ace36c2a2c>
>>> s.backend
<celery.backends.base.DisabledBackend object at 0x113fdd0>
正如你所看到的,我已经启用了后端。我在用amqp。然而,当我尝试得到结果时,这意味着我没有启用后端。在
通过在任务.py,后端开始工作。在
这似乎是一个bug,因为当前的应用程序应该包含该后端实例。在
我在celery github上开了一期。希望这对遇到这个问题的人也有帮助。在
Link to the github issue
相关问题 更多 >
编程相关推荐