Как настройка доходит до работающего узла проверенокритичноПишет Хаб
Настройка MailerQ лежит в базе и доходит до узла одним из двух способов: тихо, когда истечёт кэш узла, или сразу, если кто-то опубликует сообщение перечитывания в кластерный обмен.
Подробно
Это самый важный механизм для всего, что пишет настройки снаружи, и именно из-за него правка может выглядеть потерянной. MTA держит все таблицы в памяти и обновляет их по таймеру (mq5.directive.database-ttl, десять минут по умолчанию). Консоль управления это скрывает, потому что делает обе половины: пишет строку и тут же публикует управляющее сообщение, поэтому её изменения появляются мгновенно. Программа, которая написала строку и на этом остановилась — а Хаб естественным образом поступил бы именно так, — получает правку, вступающую в силу в непредсказуемый момент в пределах десяти минут, и на каждом узле в свой. Управляющих сообщений два. {"reload": true} велит каждому узлу, привязанному к обмену, перечитать базу; {"hello": true} просит узлы объявить о себе немедленно, не дожидаясь очередного объявления по расписанию. Оба — обычный JSON, публикуемый в веерный обмен, поэтому послать их может всё, что умеет говорить с брокером: никакого API MailerQ здесь не участвует.