Страницы

Поиск по вопросам

среда, 3 апреля 2019 г.

Управление процессами или одно задание на всех

Есть N-е количество процессов (не важно, треды, форки или просто программы). Им всем надо передать какую-то информацию, например, о неком событии. То есть, нужно чтобы было одно место, откуда они все должны брать информацию. Как это обычно реализуется?


Ответ

Ищите в сторону словосочетаний «publish-subscribe» и «message bus.» Там много можно найти вариантов, выбирайте на вкус и под задачу. Например, Если похитрее, и чтобы с очередями и подтверждением доставки — AMQP-сервер, скажем, RabbitMQ. Или не AMQP а STOMP использовать. Если более примитивно — Redis, например, да. Опять же, иногда все уже есть в системе. Например, часто можно встретить D-Bus на *nix'овых десктопах. Правда D-Bus по сети — это (хоть и возможно) очень, очень через задницу и только после огромного напильника, так что решение только в пределах одной машины. А если в конторе есть XMPP-сервер — оно тоже можо использовать. Если без сервера — у 0MQ (aka ZeroMQ) есть pub/sub возможности. Или вообще старые добрые (но малоизвестные) POSIX message queues, если надо в пределах одной машины.

Комментариев нет:

Отправить комментарий