--- 服务端 ---
import random
from multiprocessing.managers import BaseManager
from queue import Queue
req = Queue()
res = Queue()
class QueueManager(BaseManager):
pass
def reqd():
return req
def resd():
return res
if name == 'main':
QueueManager.register('get_req', reqd)
QueueManager.register('get_res', resd)
manager = QueueManager(address=('127.0.0.1', 5000), authkey=b'123')
manager.start()
req = manager.get_req()
res = manager.get_res()
for x in range(10):
n = random.randint(0, 10000)
print('request message {0}'.format(n))
req.put(n)
print('request message')
for x in range(10):
n = res.get(timeout=10)
print('response message {0}'.format(n))
manager.shutdown()
print('end')
--- 客户端 ---
import time
from multiprocessing.managers import BaseManager
class QueueManager(BaseManager):
pass
if name == 'main':
QueueManager.register('get_req')
QueueManager.register('get_res')
manager = QueueManager(address=('127.0.0.1', 5000), authkey=b'123')
manager.connect()
req = manager.get_req()
res = manager.get_res()
for i in range(10):
try:
n = req.get(timeout=1)
print('run task {0} * {0}'.format(n))
r = '{0} * {0} = {1}'.format(n, (n * n))
time.sleep(1)
res.put(r)
except:
print('message is null')
print('end')
用户7098521620
--- 服务端 --- import random from multiprocessing.managers import BaseManager from queue import Queue
req = Queue() res = Queue()
class QueueManager(BaseManager): pass
def reqd(): return req
def resd(): return res
if name == 'main': QueueManager.register('get_req', reqd) QueueManager.register('get_res', resd) manager = QueueManager(address=('127.0.0.1', 5000), authkey=b'123')
--- 客户端 --- import time from multiprocessing.managers import BaseManager
class QueueManager(BaseManager): pass
if name == 'main': QueueManager.register('get_req') QueueManager.register('get_res') manager = QueueManager(address=('127.0.0.1', 5000), authkey=b'123')