我想在芹菜中分享我的工作节点之间的小块信息(例如缓存的授权令牌,统计信息......)。
如果我在我的任务文件中创建一个全局文件,那么每个工作人员都是唯一的(我的工作人员是进程并且具有1个任务/执行的生命周期)。
最佳做法是什么? 我应该在外部保存状态(DB),创建一个老式的共享内存(由于芹菜中不同的池实现,可能很难)?
提前致谢!
答案 0 :(得分:7)
我终于找到了一个不错的解决方案 - 核心python多处理 - 管理器:
from multiprocessing import Manager
manag = Manager()
serviceLock = manag.Lock()
serviceStatusDict = manag.dict()
这个dict可以从每个进程访问,它是同步的,但你在同时访问它时必须使用一个锁(就像在其他每个共享内存实现中一样)。