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