1

オフラインの分散処理に django-celery、celery、rabbitmq を使用する Django アプリケーションがあります。

これで、ネットワーク内の他のノード (Django Web アプリがホストされている場所とは異なります) でセロリ タスク (およびセロリ ワーカー) を実行する必要があるような設定になりました。

そのためには、すべての Django コードをこれらの個別のサーバーに配置する必要があることを理解しています。それだけでなく、Django アプリに必要な他のすべての Python ライブラリをインストールする必要があります。

このようにして、すべての django ソース コードをネットワーク内のすべての可能なサーバーに転送し、依存関係をインストールし、ノード間ですべてのソースを同期するある種の更新システムを実行する必要があります。

  1. これは物事を行う正しい方法ですか?DjangoコードがホストされているWebアプリケーションサーバーの外部でセロリワーカーを実行する簡単な方法はありますか?

  2. 実際にコードをコピーしてすべてのサーバーで複製する以外に方法がない場合、セロリタスクが必要とするソースファイルのみをコピーする方法はありますか (これにはすべてのモデルとビューが含まれます-それほど小さなタスクでもありません)

4

1 に答える 1

2

この種の状況のた​​めに、私は過去にすべてのセロリ タスク コードの卵を作成しました。これは単純にrsync、または何らかの方法でワーカー ノードにコピーできます。このようにして、django と作業ノードで使用できる単一のプロジェクトでセロリ コードを編集できます。

要約すると、web-app-celery-tasksプロジェクトを作成してインストール可能な卵web-appにし、セロリタスクの卵に依存するパッケージを用意します。

于 2013-06-24T07:39:16.700 に答える