python - 如何在多台计算机之间共享多处理队列对象
问题描述
我关注了 Python 的多处理模块上的文档。有一个关于如何在多台机器之间multiprocessing.managers.BaseManager
共享相同内容的示例。Queue
服务器示例非常简单:
from multiprocessing.managers import BaseManager
import Queue
queue = Queue.Queue()
class QueueManager(BaseManager): pass
QueueManager.register('get_queue', callable=lambda:queue)
m = QueueManager(address=('0.0.0.0', 50000), authkey='abracadabra')
s = m.get_server()
s.serve_forever()
客户端更简单:
from multiprocessing.managers import BaseManager
class QueueManager(BaseManager): pass
QueueManager.register('get_queue')
m = QueueManager(address=('localhost', 50000), authkey='abracadabra')
m.connect()
queue = m.get_queue()
queue.put('hello')
问题是客户端无法连接到服务器。为了在客户端和服务器之间建立通信,需要更改哪些内容?
解决方案
推荐阅读
- c# - 我应该在 C# 中使用泛型参数还是类型参数?
- java - 如何通过最小化价值来解决背包问题?
- c++ - 有没有办法从glm中的视图矩阵中提取变换矩阵?
- python - 如何在 sklearn 中为 SpectralCluster 使用曼哈顿距离
- sql - Go 应用程序在 FLOATS 上使用 GROUP_CONCAT 进行 SQL 查询返回 []uint8 而不是实际的 []float64
- amazon-web-services - 如何使用 GoLang 拒绝注册触发器
- c - cmpq 0,R 和 testq R,R 有什么区别?
- sql - 将 VBA 函数转换为 VB.net 以获取 sql 数据
- python - 正则表达式的负面展望?急切地只匹配片段的第一个尖括号
- linux - 当我们使用 bash 对文件中的单词进行 grep 时,如何跳过注释部分( /* ....*/ ?