如何为所有正在运行的Sanic服务器进程共享数据

时间:2018-12-12 20:23:33

标签: python-3.x python-multiprocessing sanic

我需要与所有Sanic工作人员共享一个简单的对象(字节对象)。有人知道该怎么做吗? 当然,我知道multiprocessing.Array,但是如何通过Sanic API将其传播给所有工作人员?

1 个答案:

答案 0 :(得分:0)

此能力在sanic中不存在。您可以创建一个问题,并询问是否可以添加它。您可以使用此示例代码添加字典。

from multiprocessing import Process, Manager

def proc(d):
  l = d["list"]
  l.append('test')
  d['list'] = l
  print ('subprocess:', d)

manager = Manager()
d = manager.dict()
d["list"] = []

processes = []
for _ in range(2):
  p = Process(target=proc, args=(d,))
  p.daemon = True
  p.start()
  processes.append(p)

for process in processes:
  process.join()

for process in processes:
  process.terminate()

print ('main process:', d)