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