2012-10-09 36 views
0

我正在看Celery执行定义的任务分布在多台机器上。每台机器可以处理多个任务中的任何一个,但其中一些任务需要比其他任务更多的机器资源。有没有使用Celery管理这些资源的方法?芹菜和多线程任务

回答

3

芹菜不提供测量工人当前/过去资源利用率的方法,并根据这些测量值调整他们执行的工作量。但是,您可以使用Celery旋转几个旋钮,从而实现更可预测和更均匀分布的资源利用率(YMMV)。

如果您的任务没有性能要求,那么您可以考虑将使用rate limiting的给定时间段内可执行的任务数量限制在一个范围内。

另一种选择是使用celery queues您的优势。根据您的需要,您可以为轻任务创建一个队列,然后为重任务创建一个队列,然后让拥有更多功率的工作人员倾听沉重的队列以及听取灯光队列的人更少(或者更多的工作人员倾听沉重, )。