Я работаю над требованием, согласно которому процесс (скажем, производитель) должен отправлять односторонние сообщения переменному количеству процессов (например, потребителям).
Модель публикации-подписки казалась подходящей для этого, потому что потребители будут подписываться на сообщения от производителя. Я пробовал использовать ZeroMQ для этого.
Однако у меня с этим есть несколько проблем:
Потребители должны постоянно опрашивать сообщения. Я бы хотел, чтобы потребители были уведомлены о появлении нового сообщения.
Существует вероятность заполнения очереди производителя. Я бы хотел, чтобы производитель удалял сообщения из очереди на основании некоторого условия (скажем, удалял сообщения старше 5 секунд или удалял сообщения, которые были прочитаны 5 раз).
Поскольку потребители опрашиваются, а сообщения не удаляются из очереди, потребители видят дублирующиеся сообщения до тех пор, пока не придет новое сообщение. Я хочу, чтобы потребитель получал уведомление только один раз для каждого нового сообщения.
Я понимаю, что могу использовать неправильную модель (публикация-подписка может не подходить). Я думал об использовании запроса-ответа, но это не работает, поскольку производитель не хочет отслеживать количество потребителей.
Кто-нибудь может предложить хорошую альтернативу?