Celery スタンドアロンを使用しています (Django 内ではありません)。複数の物理マシンで 1 つのワーカー タスク タイプを実行する予定です。タスクは次のことを行います
- XML ドキュメントを受け入れます。
- それを変換します。
- 複数のデータベースの読み取りと書き込みを行います。
私は PostgreSQL を使用していますが、これは接続を使用する他の種類のストアにも同様に当てはまります。以前は、データベース接続プールを使用して、リクエストごとに新しいデータベース接続を作成したり、接続を長時間開いたままにしたりしないようにしていました。ただし、各 Celery ワーカーは個別のプロセスで実行されるため、実際にどのようにプールを共有できるかはわかりません。何か不足していますか?Celery を使用すると、Celery ワーカーから返された結果を永続化できることは知っていますが、ここで行おうとしているのはそれではありません。各タスクは、処理されるデータに応じて、いくつかの異なる更新または挿入を実行できます。
Celery ワーカー内からデータベースにアクセスする正しい方法は何ですか?
複数のワーカー/タスク間でプールを共有することは可能ですか? またはこれを行う他の方法はありますか?