ある種のコーディネーター コンポーネントを必要とするサービスがあります。コーディネーターは、ユーザーに割り当てる必要があるエンティティを管理し、ユーザーがタイムリーに応答しない場合はユーザーから削除し、応答した場合はユーザーの応答も処理します。コーディネーターは、メッセージング サービスに連絡して、ユーザーに処理すべきことがあると通知する必要もあります。
コーディネーターをシングル スレッド プロセスにしたいのは、最初の数年間の使用では負荷があまり大きくないと予想されるためです。また、すべての同時実行性の問題は、実際に処理する必要があるときまで延期することをお勧めします (もしあれば)。
コーディネーターは、Django Web サーバーから新しいエンティティとユーザーの応答を受け取ります。これを処理する最も簡単な方法は、Celery タスクを使用することだと思いました。Web サーバーは、コーディネーターが独自の時間に消費するタスクを開始するだけです。
これを行うには、コーディネーターにセロリ ワーカーを含め、現在のワーカー メインループを独自のバージョン (ブローカーで新しいメッセージをチェックし、スケジューリングを処理するもの) に置き換える必要があります。
それはどの程度実現可能ですか?別の方法は、Celery を避けて、RabbitMQ を直接使用することです。私はむしろそれをしたくない。