Я работаю над веб-приложением, которое отправляет задачи в систему мастер / работник, которая группирует задачи в любой из серии рабочих экземпляров. Мастер рабочей очереди выполняется как отдельный процесс (в целом на отдельном компьютере), а задачи передаются мастеру через запросы HTTP / REST. После того, как задачи отправлены в рабочую очередь, клиентские приложения могут отправить еще один HTTP-запрос для получения информации о состоянии задач.
Для моего веб-приложения мне бы хотелось, чтобы он представлял какой-то вид индикатора выполнения, который дает пользователю некоторое представление о том, как далеко продвинулась обработка задач. Очевидным способом реализации этого может быть виджет индикатора прогресса AJAX, который периодически опрашивает рабочую очередь на предмет состояния по представленным задачам. У меня вопрос, есть ли лучший способ сделать это без частых опросов?
Я подумал, чтобы клиентское веб-приложение открывало сокет сервера, на котором оно могло прослушивать уведомления от мастера работ. Еще одна похожая мысль, которая у меня была, - это использовать XMPP или аналогичный протокол для уведомлений о состоянии. (Конечно, система master / worker должна быть обновлена для предоставления уведомлений в любом случае, но я владею кодом для этого, так что могу сам выполнить любые необходимые обновления.)
Есть какие-нибудь мысли о том, как лучше настроить систему уведомлений, подобную этой? Стоит ли прилагать дополнительные усилия или это простое решение для опроса?