【发布时间】:2019-05-25 02:58:29
【问题描述】:
我在 django 项目中使用 celery。我曾尝试使用 rabbitmq 和 redis 后端,但都不起作用。使用的 celery 版本是 3.1.26.post2。我必须调用 2、3 有时 5 次 task.delay() 才能看到任务正在运行。有时通常在频繁调用同一个任务后,它的“执行率”会增加,并在 70-80% 的时间内执行任务。例如,它丢弃 5 个 task.delay() 调用中的 1 个或 2 个,但执行其中的 3-4 个。你有过这样的经历吗?可能是什么原因?
【问题讨论】:
-
我曾经打算在一个 Django 项目中使用 Celery 和 RabbitMQ。然后我清醒过来了。相反,我编写了一个使用 Threads 并从 cron 运行的自定义管理命令。对于“消息传递”,我使用了 Django 模型。
-
但由于目前的情况,我必须使用芹菜。
-
当您调用此任务时,
rabbitmqctl list_queues -p your_vhost_name会说什么? (以root身份运行) -
rabbitmqctl list_queues 显示类似
Listing queues ... 13936400801f4fbf863ac1065d172041 1 1e12015a2dfe4c3cae3da0106de45de3 1 celery 361 celery@Debian-84-jessie-64-minimal.celery.pidbox 0 celeryev.195a0af6-3058-4e14-bfbd-79d013fead8b 0 celeryev.2a18f5f9-c83e-4c6e-958e-2970d67ab9f0 0 celeryev.39795174-31bb-43d0-a83f-d43615feca08 0 e8be18ad864048ed82909ba711ee22be 0 eeca2b77716846d089806204115c4adb 1 topaz 0 topaz-worker@Debian-84-jessie-64-minimal.celery.pidbox 0 w1@Debian-84-jessie-64-minimal.celery.pidbox 0 w2@Debian-84-jessie-64-minimal.celery.pidbox 0 ...done. -
但是当我添加主机名时,它显示“列出队列,...完成”。我还注意到,每次调用任务时,芹菜的价值都会增加。
标签: django rabbitmq celery djcelery