Это мой план:
У меня есть много агентов и один менеджер агентов.
Если агент запускается, он свяжется с менеджером агента, говоря: Я агент.
Менеджер агентов может управлять всеми работающими агентами. Например, менеджер агента может сказать: agent1, PLZ что-то делать. Вот пример:
Как создать структуру с помощью ZeroMQ для этого случая
***************** *********
* agent manager * <-----I'm agent1----- * Agent *
* * ---------OK---------> * *
* * * *
* * ---calculate 1+1----> * *
* * <-------It's 2------- * *
* * -------go sleep-----> * *
* * <--OK, I'm sleeping-- * *
* * ------wake up-------> * *
* * <---------OK--------- * *
* * ---calculate 1+2----> * *
* * <-------It's 3------- * *
***************** ... *********
Я рассматриваю с помощью REQ/REP, но, кажется, он не будет работать. Потому что все происходит так: запрос --- ответ --- ответ --- запрос --- ответ --- запрос ...
Кроме того, у нас может быть несколько агентов. Это означает, что менеджер-агент может одновременно управлять множеством агентов. Поэтому я хочу использовать многопоточность, но мой босс не согласен. На данный момент он хочет использовать монопоточность. Поэтому я думаю, что я должен использовать режим «неблокирования».
Так как я мог бы создать шаблон 0MQ для этого случая с неблокирующими?