Как обмениваться данными для всех запущенных процессов сервера Sanic - PullRequest
0 голосов
/ 12 декабря 2018

Мне нужно поделиться простым объектом (байтовым объектом) вместе со всеми работниками Sanic.Кто-нибудь знает, как это сделать?Конечно, я знаю многопроцессорность. Массив, но как распространить это через Sanic API среди всех работников?

1 Ответ

0 голосов
/ 31 декабря 2018

Эта способность не существует в Sanic.Вы можете создать проблему и спросить, можете ли вы добавить ее.Вы можете добавить dict, используя этот пример кода.

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)
...