指定芹菜工人

2024-05-18 06:53:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个工人:

celery worker -l info --concurrency=2 -A o_broker -n main_worker
celery worker -l info --concurrency=2 -A o_broker -n second_worker

我使用flower监控并接收这些工人的API请求:

^{pr2}$

要从API启动这些芹菜工人,我使用flower per the docs

curl -X POST -d '{"args":[1,2]}' 'http://localhost:5555/api/task/async-apply/o_broker.add'

但是,通过这个POST请求,它在其中一个worker上运行任务。我需要选择运行特定的代理来完成任务。在

如何指定或设置它,以便选择要用于add任务的工作线程?如果你有一个解决方案使用另一个没有花的API,那也可以。在


Tags: infoaddapimainbrokerpostcelery芹菜
1条回答
网友
1楼 · 发布于 2024-05-18 06:53:33

实现这一点的最简单方法是使用单独的队列。用-Q first_worker,celery启动worker,用-Q second_worker,celery启动第二个代理。celerycelery中的默认队列名称。在

现在,当您只想将任务发送给第一个worker时,可以使用celery的^{} setting将任务路由到first_worker队列。您可以对称地将任务路由到second_worker队列。当使用apply_async时,您还可以manually route对某个队列的特定任务调用,例如:

add.apply_async(args=(1, 2), queue='first_worker')

注意,上次我检查过了,flower只监视您的一个队列(默认情况下是芹菜队列)。在

相关问题 更多 >