私は、一連のワーカーインスタンスのいずれかにタスクをファームアウトするマスター/ワーカーシステムにタスクを送信するWebアプリケーションに取り組んでいます。ワークキューマスターは(完全に別のマシン上で)別のプロセスとして実行され、タスクはHTTP/RESTリクエストを介してマスターに送信されます。タスクがワークキューに送信されると、クライアントアプリケーションは別のHTTPリクエストを送信して、タスクに関するステータス情報を取得できます。
私のWebアプリケーションでは、タスク処理がどの程度進んだかをユーザーに示す、ある種のプログレスバービューを提供したいと思います。これを実装する明白な方法は、送信されたタスクのステータスについてワークキューを定期的にポーリングするAJAXプログレスメーターウィジェットです。私の質問は、頻繁なポーリングなしでこれを達成するためのより良い方法はありますか?
クライアントWebアプリケーションで、ワークマスターからの通知をリッスンできるサーバーソケットを開くことを検討しました。私が持っていたもう1つの同様の考えは、ステータス通知にXMPPまたは同様のプロトコルを使用することです。(もちろん、いずれかの方法で通知を提供するには、マスター/ワーカーシステムを更新する必要がありますが、そのためのコードを所有しているため、必要な更新を自分で行うことができます。)
このような通知システムを設定するための最良の方法について何か考えはありますか?余分な労力はそれだけの価値がありますか、それとも単純なポーリングソリューションが進むべき道ですか?