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