我有一个应用程序将一些操作委托给 celery 任务。根据某些参数,操作必须由不同的工作人员执行。我考虑过使用队列来实现这一点。我的想法如下:
- 客户端请求来自特定消息的操作
queue1
- 如果
worker1
(专门负责queue1
)已经处于活动状态,它将处理请求 - 如果没有工人在听
queue1
,一个包罗万象的工人(worker-main
)将实例化worker1
。该请求将被转发到worker1
. worker1
一段时间后会自行关闭而不被使用
我对芹菜的了解有限,我有几个问题。
- 我如何
worker-main
在芹菜中实施?:这是一个监听所有队列的工作人员,但优先级低于任何其他工作人员。也就是说,只有当请求没有被任何其他工作人员接受时,它才会起作用。 - 如何
woker-main
创建worker1
?一旦创建worker1
者,必须与 关联queue1
,优先级高于worker-main
? - 可以将请求转发
worker-main
到worker1
吗?回复应直接发送给客户端。 - 可以
worker1
自行关闭吗?
您可以在下图中看到我尝试实现的架构的图形描述: