2017-06-24 20 views
0

私はDjangoアプリケーションを負荷分散されたElastic Beanstalk環境で実行しています。 (バックグラウンドでS3にdjangoと同じサーバー上でCeleryを実行しますか?

  • アップロードファイルと私のAndroidアプリ
  • に成功応答を送信する彼らの今後のEMISについて、それらを通知するために、ユーザーにSMSを送信:私は、次のことを行うためにセロリのデーモンプロセスを追加します
  • マイアプリを実行するために10秒かかるいくつかの機能のためのGoogleクラウドビジョンを、使用していますので、私は今、背景

でそれを実行することができセロリビート)を使用して、私はそれが正しい方法であるかどうかを知りたいですDjangoがAmazon SQSを使用して実行しているのと同じサーバーにセロリをデプロイしますか?はいの場合は、どうすれば設定できますか?

また、Elastic Beanstalk上の複数のサーバーがセロリのために重複したタスクを引き起こす可能性がある場合は、

答えて

2

セロリーをどこで始めるかは関係ありません。同じサーバー上または別個のサーバー上で両方の方法が正しいです。 セロリバックエンドに何を使用してもかまいません。すべてのセルラ間で共有されたredisまたはデータベースを使用する場合、タスクが重複することはありませんが、すべてのセロリが独自のバックエンドを持っていれば混乱し、災害になります。

+0

答えに感謝します。私の懸案事項は、その日付に属するデータベース(AWS RDSインスタンス)のエントリをチェックし、それに基づいて通知を送信するセロリのビートです。セロリビートの複数のインスタンスが実行されている場合は、重複した通知が発生する可能性があります。私はAWS SQSをメッセージキューに使用しています。 –

+0

SQSで正常に動作し、 "実行"後にメッセージを削除することを忘れずにメッセージを複製しません。メッセージに適切な "繰り返し時間"を与えますAWSで正しく名前を付けています) – vZ10

関連する問題