0

我正在寻找 Celery 来执行分布在多台机器上的一组定义的任务。每台机器都可以处理多个任务中的任何一个,但其中一些任务将比其他任务需要更多的机器资源。有没有办法使用 Celery 管理这些资源?

4

1 回答 1

3

Celery 不提供测量工人当前/过去资源利用率并根据这些测量结果调整他们执行的工作量的方法。但是,您确实需要使用 Celery 进行一些调整,以实现更可预测和更均匀分布的资源利用率 (YMMV)。

如果您有没有性能要求的任务,您可以考虑使用速率限制来限制在给定时间段内可以执行的任务数量。

另一种选择是使用芹菜队列对您有利。根据您的需要,您可以为轻任务创建一个队列,为繁重任务创建一个队列,然后让马力更大的工人听重队列,而那些听得较少的工人听轻队列(或更多工人听重任务,少听轻任务) )。

于 2012-10-09T03:35:38.817 回答