2人のユーザー間のモデレートされたチャットセッションの状態を維持するDjangoサイトのごく一部があります。基本的に、最初のユーザーが3分間話し、次に2番目のユーザーが話し、次に30秒間一時停止し、このプロセスをもう一度繰り返します。私は現在、データベースと「RoomState」モデルを使用して、部屋の現在の状態(話すことができる人など)を管理しています。状態遷移は、クライアントが10秒ごとに私のビューの1つに「ping」AJAX POSTメッセージを送信することによって影響を受けます。これにより、状態を変更する時期かどうかがチェックされます。
これは機能しますが、間違いなくハッキーな感じがします。タイマーで短期間のバックグラウンドタスクを管理するために、django-celery+rabbitmqよりも軽量なものがあるかどうか疑問に思いました。Web / Djangoの性質はステートレスであることに気づきましたが、状態遷移をより信頼性の高い方法で管理するための簡単な提案があるかどうかを確認したかっただけです。