我正在尝试开发一个能够以并行且高效的方式管理任务队列的微服务系统,但我被卡住了。
我简要描述了系统应该如何运行。
该系统由n个微服务组成,每个微服务管理一个特定的任务。每个微服务都可以将任务列表传递给任何其他微服务。
为了允许单个微服务管理大量任务,我想创建一个主微服务,将要执行的任务作为输入(例如来自某种总线),并让它们由n°它的工人,将他们分成几部分。拆分是在不同大小的元素中执行的,例如。3名工人:第一个任务管理100个项目,第二个任务管理2个项目,第三个任务管理20个项目。当一个worker完成它的工作时,主微服务提供结果并将结果返回给请求的微服务(或总线),检查是否还有其他任务要执行,如果有,则传递它们给他解放自己的第一个工人。
我尝试了 Nameko 和 Celery,但我无法以满足这些需求的方式开发它,特别是对于由 worker 管理的工作的异步管理部分,它将结果返回给 master,从而立即将结果提供给总线(或给请求者)并传递给空闲工作人员另一个要执行的任务列表