首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django芹菜任务成功,但客户端等待

Django芹菜任务成功,但客户端等待
EN

Stack Overflow用户
提问于 2012-11-01 19:31:28
回答 1查看 1.8K关注 0票数 3

我刚刚开始实现Django+Celery+RabbitMQ来做一些后端任务。我从示例add(x,y)任务开始,以验证它是否正常工作,然后继续将我现有的实用方法放在一个Celery任务模块中。问题是,当我调用我的任务时,它们运行得很好,但客户端永远得不到结果。

代码语言:javascript
复制
>>> r = SyncUsers.delay()
>>> r.get()
... Hangs here forever
^C
... (Stack trace omitted)
KeyboardInterrupt
>>> r.successful()
False

在Celeryd日志中:

代码语言:javascript
复制
[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:在同一事务中使用事务隔离级别repeatable-read的轮询结果可能会给出过时的结果。确保为每个轮询迭代提交事务。“使用事务隔离级别轮询结果”

但它仍然会永远等待。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-01 20:50:51

这就是答案。我使用的是MySQL,因此需要将事务隔离级别设置为READ-COMMITTED

http://dev.mysql.com/doc/refman/5.1/en/set-transaction.html

这也要归功于http://www.no-ack.org/2010/07/mysql-transactions-and-django.html,他为我指明了正确的方向。(博客现在似乎对公众关闭了访问)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13176133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档