【发布时间】:2012-10-21 23:38:06
【问题描述】:
我刚刚开始实现 Django+Celery+RabbitMQ 来做一些后端任务。我从示例 add(x, y) 任务开始以验证它是否正常工作,然后将我现有的实用程序方法放在 Celery 任务模块中。问题是当我调用我的任务时它们运行良好,但客户端永远不会得到结果。
>>> r = SyncUsers.delay()
>>> r.get()
... Hangs here forever
^C
... (Stack trace omitted)
KeyboardInterrupt
>>> r.successful()
False
在 Celeryd 日志中:
[2012-11-01 11:15:23,442: INFO/MainProcess] Task celerytasks.tasks.SyncUsers[9e8f4da3-17d2-4944-9095-51de1afcaaf3] succeeded in 34.596668005s: <website.bullhorn.api.APIResult object at...
有人知道这里发生了什么吗?
编辑: 刚刚注意到,当我现在调用 get() 时,我看到了:
....\lib\site-packages\djcelery\managers.py:183:TxIsolationWarning:在同一事务中使用事务隔离级别可重复读取的轮询结果可能会给出过时的结果。确保为每次轮询迭代提交事务。 "事务隔离级别的轮询结果"
它仍然会永远等待。
【问题讨论】:
标签: python django rabbitmq celery