用于长时间运行任务的芹菜并行处理

时间:2015-10-05 11:16:51

标签: python django parallel-processing celery djcelery

我很长时间在我的实时服务器上运行任务。任务涉及从facebook获取数据并使用reportlab PDF包生成PDF。

对于这些我有3个并发级别为5的工作者,这样我就能并行执行30个PDF任务。

但是当一次运行10个任务时,长时间运行的任务将打破其他任务以使其任务硬限时(12小时)到期。

但在我的服务器中,在最坏的情况下,单个PDF任务最多需要3小时或4小时。但是当我运行并发级别为5的所有工作程序时,某些任务正在取得成功,而某些任务的时间限制超过(12小时)。但我的目标是需要在4或5个小时内完成所有这10项任务。

是否有最好的方法可以处理长时间运行的任务?

我也在使用django - 芹菜包。
我的芹菜Conf:

CELERYD_OPTS="-time-limit=43200 --concurrency=10"
CELERYD_CONCURRENCY = 10
CELERYD_NODES = "worker1 worker2 worker3"

跑步工人:     python manage.py celeryd_multi restart n1 n2 n3 -l info -f celery.log -c 10 --purge -Q:n1,n2,n3 backend

0 个答案:

没有答案