celery - 多个 celery 进程写入单个日志文件的“竞争条件”到底是什么?
问题描述
在v4.4.0及其他版本的 celery 文档中,在解释如何配置日志文件的部分中有以下警告:
CELERYD_LOG_FILE - 工作日志文件的完整路径。默认为 /var/log/celery/%n%I.log 注意:在使用 prefork 池时使用 %I 很重要,因为多个进程共享同一个日志文件会导致竞争条件。
这些竞争条件到底是什么?我试图通过创建一个写入一堆日志的简单任务来复制任何类型的问题,并同时在多个 pre-fork 工作人员之间执行该任务数百次。正如预期的那样,日志消息是交错的,我看不到任何有问题的行为的迹象。
解决方案
推荐阅读
- django - 如何获取将图像上传到 s3 存储桶的文件名?
- java - 使用java spring boot有什么问题
- angular8 - 通过在应用程序本身中选择一个选项来实现 Angular 8 中的国际化
- java - 如何修复 Java 类中的“在类上找不到要序列化的属性”错误?
- c++ - 如何将对象向量写入文件?
- javascript - 如何知道科尔多瓦的蓝牙设备类型
- java - ArrayList 声明之间的区别
- java - DynamicReports的查询参数未找到错误
- ubuntu - 当总大小超过限制时,logrotate 整个文件夹
- angular - 如何仅给出在 angular8 中粘贴期间允许的值