- 33
- 0
创建服务进程总共需要六步
import time,random,queue,sys
from multiprocessing.managers import BaseManager
from multiprocessing import freeze_support
class QueueManager(BaseManager):
pass
第一步,创建两个队列
task_number = 10
task_queue = queue.Queue(task_number)
result_queue = queue.Queue(task_number)
第二步,注册两个队列到网络,利用的是register方法,在回调函数里传入相应的队列对象
windows下绑定调用接口不能使用lambda,所以只能先定义函数再绑定
def get_task():
return task_queue
def get_result():
return result_queue
def server_start():
QueueManager.register('get_task_queue',callable=get_task)#callable 接收的实际是一个函数
QueueManager.register('get_result_queue',callable=get_result)
#第三步,创建管理类实例,绑定端口和验证口令
manager = QueueManager(address=('127.0.0.1',5000),authkey=b'oliver')#这里必须要转换成字节流不能是字符串
#第四步,启动管理类,监听通信信道
manager.start()
#第五步,通过管理实例方法获得网络访问的Queue对象,因为服务器进程要发布任务
try:
task = manager.get_task_queue()
result = manager.get_result_queue()
#第六步,添加相应的任务
for url in ['ImageUrl_' + str(i) for i in range(10)]:
print('put url:%s'%(url))
task.put(url)
#获取返回结果
print('try get result..')
for i in range(10):
print('result is %s '%result.get(timeout = 10))
except:
print('Manager error')
finally:
manager.shutdown()
if name == '__main__':
freeze_support()
server_start()
- 共 0 条
- 全部回答
-
落在谁的指尖 普通会员 1楼
在Windows环境下,你可能遇到一个错误,表明你尝试调用的
注册方法并未在Queue类的Handle属性中找到。这可能是因为你的Queue实例并未被正确初始化,或者是在注册方法中忘记传递任何参数。在Python中,你可以使用
Queue类的register方法来注册一个队列实例。然后,你可以使用Queue类的Handle属性来访问队列实例。如果你使用的是C++的
Queue类,你可以使用std::queue命名空间中的queue成员函数来注册一个队列实例。然后,你可以使用queue成员函数来访问队列实例。在Python中,你可能需要使用
Queue类的__init__方法来初始化Queue实例,然后使用Queue类的Handle属性来访问Queue实例。你可能还需要在注册方法中提供一个参数,以指示要注册的队列实例。在C++中,你可能需要使用
std::queue命名空间中的queue类的operator new和operator delete函数来注册一个队列实例,然后使用queue类的成员函数来访问Queue实例。你可能还需要在注册方法中提供一个参数,以指示要注册的队列实例。如果你在Windows环境下遇到这个错误,你可以尝试使用上述方法来解决。如果你在C++环境下遇到这个错误,你可以尝试使用上述方法来解决。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
