Python Ø;MQ多线程REQ/REP
我正在尝试编写一个应用程序,允许用户启动长时间运行的计算过程,该过程将使用ØMQ从web服务器接收命令。我使用standart请求-应答体系结构:服务器有一个REQ套接字连接到一个worker进程REP套接字。从用户接收到新命令时,会将其发送到工作进程:Python Ø;MQ多线程REQ/REP,python,zeromq,Python,Zeromq,我正在尝试编写一个应用程序,允许用户启动长时间运行的计算过程,该过程将使用ØMQ从web服务器接收命令。我使用standart请求-应答体系结构:服务器有一个REQ套接字连接到一个worker进程REP套接字。从用户接收到新命令时,会将其发送到工作进程: self.instance_dict[instance_id].socket.send(json_command) result = self.instance_dict[instance_id].socket.recv() 当发送第二个命令
self.instance_dict[instance_id].socket.send(json_command)
result = self.instance_dict[instance_id].socket.recv()
当发送第二个命令而第一个命令仍在执行时,就会出现问题。
ØMQ是否提供了处理消息队列的功能,还是我自己没有实现它?或者我应该更改架构吗?对于REQ/REP,在确认第一个命令之前,不得发送第二个命令;ZMQ强制协议中消息的正确顺序 您可能希望改用推/拉方式—然后消息将自动排队,而不需要中间的回复(顺便说一句,我认为这也自动允许您使用多个工作线程进行扩展和负载平衡) 如果使用IOLoop,则可以设置ZMQStreams,以便在进程内对消息进行排队。 看