我有两个工人:
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,那也可以。在
实现这一点的最简单方法是使用单独的队列。用
-Q first_worker,celery
启动worker,用-Q second_worker,celery
启动第二个代理。celery
是celery
中的默认队列名称。在现在,当您只想将任务发送给第一个worker时,可以使用celery的^{} setting 将任务路由到
first_worker
队列。您可以对称地将任务路由到second_worker
队列。当使用apply_async
时,您还可以manually route对某个队列的特定任务调用,例如:注意,上次我检查过了,flower只监视您的一个队列(默认情况下是芹菜队列)。在
相关问题 更多 >
编程相关推荐