celery - 将--max-memory-per-child立即重新启动工作人员或让他们完成任务?

时间:2017-06-09 16:29:00

标签: django celery django-celery

一旦工作进程超过var x = 1.5; if(!isNaN(x)){ console.log('Number'); if(x % 1 == 0){ console.log('Integer'); } }else { console.log('not a number'); } 限制,它是否会立即被杀死并重新启动?或芹菜允许它完成当前任务(即使它在完成时必须消耗更多的内存),然后重新启动它?

1 个答案:

答案 0 :(得分:2)

根据我的测试,它总是让任务完成,即使任务使用的内存远远超过限制。这是我的考验:

  • 将内存限制设置为15 MB
  • 创建了一项任务:
    • 消耗50 MB睡眠
    • 打印内存使用,睡30秒
    • 消耗50 MB以上
    • 打印内存使用,睡30秒
    • 打印内存使用,退出

我添加了睡眠以防万一为芹菜给予时间来杀死任务。

在所有情况下,它总是允许任务完成,然后下一个任务从零开始(如果我将任务更改为消耗的内存少于限制,则下一个任务不会从零开始)。