芹菜工人过早退出:serializer.is_valid()上的信号9(SIGKILL)

时间:2019-07-24 12:35:00

标签: python django celery

我知道有关此主题的问题已经存在,因此我理解了总体思路,但这是更具体的。 在我们的芹菜工人上执行的某些工作中,我们正在创建许多对象(大约2000个)。 似乎每次在第2000个对象(1700-1900)左右的某个时刻,都会出现此错误: Worker exited prematurely: signal 9 (SIGKILL) 而且似乎总是在这部分代码周围发生:

serializer = ModelSerializer(data=model_data)
Logger.info("serializer created")
if serializer.is_valid() is True:
    Logger.info("serializer valid")

我确实看到了第一个日志,所以我猜想序列化程序已成功创建,但是我看不到第二个日志。并不是说序列化程序无效,因为这种情况也已涵盖在内。在那行代码(if serializer.is_valid())之后,我只是停止看到作业中的任何日志。 当尝试创建更少的对象时,这似乎很好。 所以我的问题是,为什么在一个芹菜作业中使用大量的serializer.is_valid()会导致该进程终止?

确切错误:

Process 'ForkPoolWorker-3' pid:890 exited with 'signal 9 (SIGKILL)' 

Task handler raised error: WorkerLostError('Worker exited prematurely: signal 9 (SIGKILL).',)   

billiard.exceptions.WorkerLostError: Worker exited prematurely: signal 9 (SIGKILL).

0 个答案:

没有答案