設定:
- Tornado HTTP/WebSocket サーバー。WebSocketHandler はクライアントからのメッセージに反応します (例: ジョブキューに入れます)
- さまざまなコンポーネントにジョブを送信する Beanstalk ジョブ キュー
- 豆の木を介して通信する他のコンポーネントもありますが、それらは私の問題とは関係ありません。
問題:
- WebSocketHandler はジョブに反応する必要がありますが、Beanstalk をリッスンしている場合はブロックされます。ジョブは、たとえば「データ xy をクライアント xyz に送信する」などです。
これはどうすればうまく解決できますか?私の最初のアプローチは、ピクルされた WebSocketHandler のリストを含む別のスレッドで jobqueue-listener を実行することでした。すべて redis-db に保存する必要があります。WebsocketHandler は pickle 化できないため (このアプローチは非常に醜いようです)、別の解決策を探しています。
何か案は?