私はちょうどdjango-celeryを使用し始めています。私はデーモンとしてceleryd runningを設定したいと思います。しかし、instructionsは、一度に1つのサイト/プロジェクトに対してのみ設定できることを示唆しています。 celerydは複数のプロジェクトを処理できますか、それとも1つしか処理できませんか?この場合、各設定に対して自動的に起動するようにcelerydを設定するクリーンな方法があります。そのため、それぞれに個別のinitスクリプトを作成する必要があります。複数のdjangoアプリケーションでデーモンとしてcelerydを使用していますか?
答えて
すべての興味深い質問と同様に、答えはです。それはに依存します。 :)
2つの独立したサイトでcelerydを使用できるシナリオを考え出すことは間違いありません。複数のサイトが同じエクスチェンジにタスクを提出していて、タスクが特定のデータベースへのアクセスを必要としない - たとえば、電子メールアドレスやクレジットカード番号、またはデータベースレコード以外のもので動作している場合 - 十分である。タスクコードがすべてのサイトとセロリサーバーによって読み込まれる共有モジュールにあることを確認してください。
通常、セカリはデータベースにアクセスする必要があります。セマンティクスは、タスクパラメータとして渡されたIDに基づいてオブジェクトをロードするか、データベースに変更を書き込むか、最も頻繁に、両方。また、複数のサイトやプロジェクトでは、同じアプリを共有していてもデータベースを共有しないので、タスクキューを別にする必要があります。
この場合、通常は、複数のエクスチェンジを持つ単一のメッセージブローカー(たとえばRabbitMQ)を設定することがあります。各交換局は、単一のサイトからメッセージを受信します。次に、各交換のどこかで1つまたは複数のcelerydプロセスを実行します(セロリの設定では、交換を指定する必要があります。私はcelerydが複数の交換を聞くことはできません)。各celerydサーバーは交換、それをロードする必要のあるアプリケーション、および接続先のデータベースを認識しています。
これを管理するには、cymeを調べてみることをお勧めします。@asksolによって作成され、必要に応じて複数のサーバーで複数のcelerydインスタンスを管理します。私は試していませんが、異なるインスタンスに対して異なる設定を処理する必要があるようです。
は試みるが、ジャンゴ・セロリを必要としないセロリの3.1.xを使用して、あなたはこのようなセロリアプリをインスタンス化することができますマニュアルに従っていない:
app1 = Celery('app1')
app1.config_from_object('django.conf:settings')
app1.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
しかし、あなたは、いくつかを起動するためのセロリのマルチを使用することができます単一の構成を持つ労働者の場合は、例hereが表示されます。
# 3 workers: Two with 3 processes, and one with 10 processes.
$ celery multi start 3 -c 3 -c:1 10
celery worker -n [email protected] -c 10 --config celery1.py --app app1
celery worker -n [email protected] -c 3 --config celery2.py --app app2
celery worker -n [email protected] -c 3 --config celery3.py --app app3
:それは違うtaksと設定を使用しますので、ですから、異なる
--app APPXパラメータを使用して、いくつかの労働者を起動することができます
- 1. django/djceleryを使用しているときにceleryd-multiコマンドが不明です
- 2. Rabbitmq Celeryd Celerybeatがデーモンとして実稼働中のタスクを実行していません
- 3. デーモンとしてPythonでDjangoを実行
- 4. ApacheでDjangoとmod_wsgiを使用している複数のサイト
- 5. djangoで複数のフォームに1つのモーダルを使用していますか?
- 6. 同じアプリケーションで複数のGoogleマップをAndroidアプリケーションで使用しています
- 7. のpython-デーモン - Iのpython-デーモンを使用してい
- 8. 複数のアプリケーションを複数のプラットフォームでホストしています
- 9. dockerデーモンでlisten-addrを使用しています
- 10. コンテナをデーモンとして実行していますか?
- 11. Django:複数のサーバーを使用していてもrequest.sessionは安定していますか?
- 12. ノードとnginxをプロキシサーバーとして使用して複数のアプリケーションを作成するのがベストプラクティスですか?
- 13. URLをdjangoに渡して変数として使用しますか?
- 14. Laravel 5.3で複数のAuthを使用していますか?
- 15. XQueryで複数のパラメータを使用していますか?
- 16. AngularJS:複数のモジュールで$ routeProviderを使用していますか?
- 17. 複数のクラス間でSharedPreferencesを使用していますか?
- 18. 複数のファックスモデムでFax4Jを使用していますか?
- 19. Django Rest Frameworkを使用してビューごとに複数のシリアライザを使用することができます
- 20. サーカス、サーカスをデーモンとして走っていますか?
- 21. Django:モデルを使用して複数のテーブルを照会する
- 22. Abstract Django:__init __()は、引数として複数の値を持っています
- 23. 複数レイヤキャンバスでmozrequestfullscreen()を使用していますか?
- 24. 新しいDjangoプロジェクトでdjango-contrib-comments(アプリケーション)を使用しますか?
- 25. 別のモデルのフィールドとしてdjangoモデルを使用していますか?
- 26. apschdulerをPythonスクリプトでデーモンとして実行していますか?
- 27. 複数のアプリケーションからdjango認証システムを使用する
- 28. 複数のCSSメディアクエリを使用していますが、最大のものを使用していますか?
- 29. HttpPostedFileBaseのICollectionを使用して複数のファイルをアップロードしていますか?
- 30. djangoアプリケーションで複数のデータベースを使用する方法