Celery を使用する場合は Redis と RabbitMQ が頼りになるブローカーになる可能性がありますが、ローカルで開発している場合は過剰に感じる可能性があります。 Celery 5.4 のドキュメントには、SQLite をローカル開発用の実験的ブローカーとして使用できることが記載されています。ただし、Celery のバックエンドとブローカーのページに移動すると、SQL について言及されているのは SQLAlchemy backend のみです。ありがたいことに、このページには「このセクションはバックエンドとブローカーを包括するものではありません」と記載されています。
この投稿では、Django プロジェクトで Celery 用の SQLite ブローカー (または任意の SQL!) を実装する方法を説明します。この投稿は Celery の使い方を教えるものではありません。それについては Celery の公式ドキュメントを確認してください。
始める前に必須ではありませんが、django-celery-results のインストールと構成についてはガイドの手順に従ってください。 バックエンド と ブローカー の違いが不明な場合は、私の記事「Celery のタスク、ブローカー、ワーカー、バックエンドについて」を参照してください。
特に明記されている場合を除き、ソース ドキュメントへのすべてのリンクは、発行時 (2024 年 7 月) の Django、Celery、および SQLAlchemy の現行バージョンのものになります。あなたが遠い将来にこれを読んでいるなら、状況は変わっているかもしれません。SQL ブローカーのセットアップ
Kombu のドキュメントの隅に隠れて、PostgreSQL、MySQL、SQLite をサポートする SQLAlchemy Transport Model があります。かつて SQLAlchemy ブローカーは Celery の Web サイトにも文書化されていましたが、それ以降、ライブラリの新しいバージョンでは文書から削除されています。それにもかかわらず、ローカル開発にはまだ十分に機能します。
Django アプリで後続データベースを Celery ブローカーとして使用するには、まず SQLAlchemy をインストールします:
pip install SQLAlchemyDjango プロジェクトの settings.py ファイル内で、CELERY_BROKER_URL 設定を使用してブローカーのバックエンドを設定できます:
pip install SQLAlchemySQLAlchemy
ブローカー URL は 3 つの部分で構成されています:
pip install SQLAlchemyPostgres を Celery ブローカーとして使用することも、MySQL を Celery ブローカーとして簡単に使用することもできます:
pip install SQLAlchemyMySQL または PostgreSQL に接続するには、他のライブラリをインストールする必要がある場合があります。インストールするライブラリは SQLAlchemy 接続文字列に影響する可能性があります。詳細については、SQLAlchemy データベースの URL ドキュメントを確認してください。
どのデータベースを選択するかに関係なく、さまざまな環境で簡単に変更できるように、ブローカー URL を環境変数に保存することを検討することをお勧めします。
pip install SQLAlchemy注意事項
とはいえ、ローカル開発や小規模なサイドプロジェクトには問題ないかもしれません。しかし、将来 SQLAlchemy をブローカーとして使用する機能がなくなっても、私はショックを受けません。
次のステップ
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3