Я только начал работать с ZMQ. Я разрабатываю приложение, чей рабочий процесс:
- один из многих клиентов (у которых есть случайные PULL-адреса) PUSH запрос на сервер в 5555
- сервер всегда ждет клиентских PUSHes. Когда приходит, рабочий процесс порождается для этого конкретного запроса. Да, рабочие процессы могут существовать одновременно.
- Когда этот процесс завершает задачу, он возвращает клиенту результат.
Я предполагаю, что для этого подходит архитектура PUSH/PULL. Пожалуйста, исправьте меня.
Но как мне обрабатывать эти сценарии?
- client_receiver.recv() будет ждать бесконечное время, когда сервер не сможет ответить.
- клиент может отправить запрос, но он сработает сразу же после этого, поэтому рабочий процесс останется на сервере server_sender.send() навсегда.
Итак, как мне настроить что-то вроде таймаута в модели PUSH/PULL?
EDIT: спасибо user938949 предложениям, я получил рабочий ответ, и я поделился им для потомков.