我刚开始使用ZMQ。我正在设计一个应用程序,其工作流程如下:
- 众多客户端(随机PULL地址)之一向5555的服务器推送请求
- 服务器永远在等待客户端推送。当有一个推送到来时,就会为该特定请求生成一个工作进程。是的,工作进程可以同时存在。
- 当该进程完成任务后,它会向客户端推送结果。
我认为PUSH/PULL架构适合这种情况。请纠正我,如果我有误。
但是我该如何处理以下情况呢?
- 当服务器未能响应时,client_receiver.recv()将无限期等待。
- 客户端可能会发送请求,但会立即失败,因此工作进程将永远停留在server_sender.send()处。
那么,我该如何在PUSH/PULL模型中设置类似于超时的功能呢?
编辑: 感谢user938949的建议,我得到了一个有效的答案,现在我分享出来供后人参考。