我有三项芹菜任务:
我在机器里有4个cpus。我想分配3名工人用于预测和培训,1名用于健康检查。实现这一点的最简单方法是什么?请注意,我将安排这些任务,因此不能直接在apply_async()函数中指定工作人员的数量。
实际吐露:
CELERY = Celery(
CELERY_APP_NAME,
backend=CELERY_BACKEND,
broker=CELERY_BROKER,
include=["src.tasks"],
)
CELERY.conf.update({"task_routes": {"src.tasks.*": {"queue": "input_queue"}},
}
)
@CELERY.task
def prediction():
pass
@CELERY.task
def training():
pass
@CELERY.task
def healthcheck():
pass以及运行工作人员的命令:
celery --loglevel=INFO -A src.tasks worker -Q input_queue
发布于 2020-09-01 15:35:25
我就是这样做的,因为我永远无法真正理解celery multi
celery -A yourproject.yourapp -l info -c 3 -Q predictioncelery -A yourproject.yourapp -l info -c 1 -Q healthcheck在运行与上述类似的操作(具有正确的应用程序参数)之后,您将得到两个订阅到不同队列的工作人员。您的预测和培训任务将使用queue=prediction和其他命名参数触发,而健康检查任务应该以类似的方式发送到healthcheck队列。
https://stackoverflow.com/questions/63686168
复制相似问题