首页 > 解决方案 > 多个 celery 进程写入单个日志文件的“竞争条件”到底是什么?

问题描述

v4.4.0及其他版本的 celery 文档中,在解释如何配置日志文件的部分中有以下警告:

CELERYD_LOG_FILE - 工作日志文件的完整路径。默认为 /var/log/celery/%n%I.log 注意:在使用 prefork 池时使用 %I 很重要,因为多个进程共享同一个日志文件会导致竞争条件。

这些竞争条件到底是什么?我试图通过创建一个写入一堆日志的简单任务来复制任何类型的问题,并同时在多个 pre-fork 工作人员之间执行该任务数百次。正如预期的那样,日志消息是交错的,我看不到任何有问题的行为的迹象。

标签: celery

解决方案


推荐阅读