ホームページ >バックエンド開発 >Python チュートリアル >実践経験: Celery と Redis を Django に統合して非同期タスクを実装する
実践経験: Celery と Redis を Django に統合して非同期タスクを実装する
はじめに:
Web アプリケーションの複雑さが増し続けるにつれて、多くの操作で Spend が必要になります。多くの時間とリソース。ユーザー エクスペリエンスとシステム効率を向上させるために、開発者は多くの場合、時間のかかる操作を非同期タスクに変換して実行する必要があります。 Django では、Celery と Redis を統合することで非同期タスクを実装できます。この記事では、Django で Celery と Redis を統合する方法を、実用的なコード例とともに紹介します。
pip install celery
次に、Redis をインストールするには、次のコマンドを使用できます:
sudo apt-get install redis-server
インストールが完了したら、設定を行う必要があります。 Django プロジェクトでは、Celery と Redis を使用することを知らせます。プロジェクトの settings.py ファイルに、次のコードを追加します。
# CELERY SETTINGS CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
ここでは、Redis のローカル アドレスとポートを指定します。 Redis が実行中であり、指定されたポートでリッスンしていることを確認してください。
from celery import Celery app = Celery('myapp', broker='redis://localhost:6379/0') @app.task def add(x, y): return x + y
この例では、Celery アプリケーションを作成し、add という名前のタスクを定義します。 add タスクは 2 つのパラメーター x と y を受け取り、それらの合計を返します。
from myapp.tasks import add def my_view(request): x = 10 y = 20 add.delay(x, y) return HttpResponse("Task added to the queue.")
この例では、前に定義した追加タスクをインポートし、view 関数で呼び出しました。 late() メソッドを使用してタスクを Celery キューに追加し、すぐに HttpResponse をユーザーに返します。こうすることで、時間のかかる操作を実行しているときにユーザーがブロックされることはありません。
celery -A myapp worker -l info
これにより、Celery ワーカーが起動され、キュー内のタスクの処理が開始されます。 -l パラメータを使用してログ レベルを設定できます。
pip install flower
インストールが完了したら、新しいターミナル ウィンドウを開いて次のコマンドを実行します。
flower -A myapp --port=5555
これにより Flower サーバーが起動し、ポート 5555 をリッスンします。ブラウザで localhost:5555 にアクセスすると、現在実行中のタスクやタスクのステータスなどの情報を表示できます。
結論:
Celery と Redis を統合することで、Django で効率的な非同期タスク処理を実現できます。この記事では、Django プロジェクトで Celery を構成および使用するための基本的な手順を説明し、実用的なコード例を示します。この記事が、開発における非同期タスク処理の効率化の一助になれば幸いです。
以上が実践経験: Celery と Redis を Django に統合して非同期タスクを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。