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