私は、2人のユーザー間でモデレートされたチャットセッションの状態を保持するDjangoサイトのごく一部です。基本的に、第1のユーザは3分間話し(他の誰もが話すことはできない)、次に第2のユーザが話し、次に30秒の休止をし、プロセスをもう一度繰り返す。私は現在、データベースと "RoomState"モデルを使用して、部屋の現在の状態(話すことができる人など)を管理しています。状態の遷移は、クライアントが状態を変更する時間であるかどうかをチェックする、自分のビューの1つに10秒ごとに「ping」AJAX POSTメッセージを送信することによって影響されます。セロリなしのDjangoでのバックグラウンド処理
これは動作しますが、間違いなくハッキリに感じます。私は、タイマーで短命のバックグラウンドタスクを管理するために、django-celery + rabbitmqより軽いものがあるのだろうかと思っていました。私はWeb/Djangoの性質がステートレスであることを認識していますが、ステート遷移をより信頼性の高い方法で管理するための簡単な提案があれば見たいだけでした。
rabbitmqが重量すぎる場合は、代わりにRedisバックエンドの使用を検討してください。 –
選択した回答を更新することを検討してください。 – coleifer
DjangoまたはCeleryの2つのブレークポイントのいずれかをアップグレードする必要があるたびに、私はOPに完全に同意します。私たちは現在、頭痛のためにウェブをスキャンしています。セロリにはgit hubに496の顕著な問題があり、決して引っ張られることのない37回のプルリクエストがあります。セロリではありませんでした。開発者は時間を無駄にして別のバックエンドを統合することはありません。 –