gpt4 book ai didi

python - Celery send_task 不发送任务

转载 作者:行者123 更新时间:2023-11-28 18:27:26 28 4
gpt4 key购买 nike

我有一台运行 Celery 和 RabbitMQ 的服务器。但是当我尝试使用 send_task 发送任务时,它只是返回一个 AsyncResult 对象。
但是实际任务并没有运行(即使工作人员和队列是空的)

c = Celery("tasks", broker="amqp://guest@127.0.0.1//")
c.send_task("tasks.printing.test_print", (100), queue="print_queue", routing_key="printing.test_print")

我的 celery 配置是:

CELERY_QUEUES = (
Queue('default', routing_key='task.#'),
Queue('print_queue', routing_key='printing.#'),
)
CELERY_DEFAULT_EXCHANGE = 'tasks'
CELERY_ROUTES = {
'tasks.printing.test_print': {
'queue': 'print_queue',
'routing_key': 'printing.test_print',
}}
BROKER_URL = 'amqp://'

我只执行一个 worker :

celery -A celerymain worker --loglevel=debug 

这是它的初始日志:

- ** ---------- [config]
- ** ---------- .> app: __main__:0x7eff96903b50
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: amqp://
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ----
--- ***** ----- [queues] -------------- .> default exchange=tasks(topic) key=task.#
.> print_queue exchange=tasks(topic) key=printing.#

[tasks] . test_print

这是任务:

class test_print(Task):

name = "test_print"

def run(self,a):
log.info("running")
print a

rabbitMQ 队列“print_queue”保持为空,并且 rabbitMQ 日志中没有任何新内容。
我有 4 GB 可用空间,所以这不是磁盘空间问题。

这可能是什么问题?

最佳答案

我通过从 send_task 中删除 routing_key 参数解决了这个问题。
我真的不知道为什么这是个问题,但至少它有效

关于python - Celery send_task 不发送任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40330878/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com