status.py
from multiprocessing import Manager
manag = Manager()
serviceLock = manag.Lock()
status_list = manag.dict()
cel.py
from celery import Celery
import status
app = Celery('tasks', broker='pyamqp://guest@localhost//')
@app.task
def add(req, x, y):
status.status_list[req] = 'performing request'
return (x+y)
main.py
from cel import add
import status
req = 1
status.status_list[req] = 'request generated'
print(status.status_list)
add.delay(req, 4, 4)
print(status.status_list)
所以我有这个奇怪的输出。它每次都显示相同的列表。该列表由于某种原因没有得到更新。 输出是
{1 : 'request generated'}
{1 : 'request generated'}
但我需要的是
{1 : 'request generated'}
{1 : 'performing request'}
所有工作人员共享同一个字典。我可以在我的芹菜终端检查一下。但主要过程和芹菜都有自己的本地词典。有人可以帮我解决如何拥有统一字典的问题。