私はpython/flask Webアプリを構築しています。これにより、ユーザーはxmppでチャットできます。イベント駆動型の構造を持つ sleekxmpp をジョブに使用します。メッセージが受信されると、xmpp インスタンスは受信メッセージを処理するために定義されたメソッドを実行します。
そのため、アクティブな各ユーザーは、着信メッセージをリッスンするためにスレッドを実行する必要があります。私の質問は、herokuでこれをどのように達成するのですか?
herokuが説明しているように、バックグラウンドジョブにpython-rqを実際に使用することはできません。ユーザーがチャットを開始すると、実行のために「xmpp listen」ジョブをキューに入れることができます。その後、ワーカーはジョブを取得し、着信メッセージのリッスンを開始します。ワーカーはチャットが終了するまで戻らないため、他のチャット ユーザーのキューがブロックされます。チャットしているユーザーごとにワーカーを持つこともできますが、それは非常にコストがかかります (ワーカー プロセスに対して heroku が請求するものを考えると)。
私が必要としているのは、最初のジョブが終了する前に、ワーカーがジョブのスレッドを開始し、キューから別のジョブを実行できるジョブ キューだと思います。その後、1 つのワーカーが一度に多くのユーザーの受信メッセージをリッスンできます。
これは可能ですか?または、herokuでこれを行うにはどうすればよいですか?