【发布时间】:2011-09-18 14:48:54
【问题描述】:
我不明白为什么celeryd 没有拉出添加到队列中的新任务。它只会在启动后检索任务,然后无法监控。我正在使用 Django ORM 作为消息代理运行带有 django-celery 的 Django 开发服务器。
我的 Django 设置文件有这个 celery 的配置:
INSTALLED_APPS += ("djcelery", )
INSTALLED_APPS += ("djkombu", )
import djcelery
djcelery.setup_loader()
BROKER_TRANSPORT = "djkombu.transport.DatabaseTransport"
BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"
此外,如果重要的话,我正在使用一个 remote MySQL 服务器作为我的数据库后端。
编辑:已解决!
花了几个小时后,我在 Celery 常见问题解答中找到了答案:
MySQL is throwing deadlock errors, what can I do?
我没有在日志中看到死锁错误,但修改了我的 /etc/my.cnf 以包括:
[mysqld]
transaction-isolation = READ-COMMITTED
解决了我的问题。
希望这对其他人有帮助!
【问题讨论】: