Celery、Redis、Django を使用して非同期タスク キューを実装する方法
Celery、Redis、Django を使用して非同期タスク キューを実装する方法
はじめに:
Web 開発では、長期的なタスクを処理する必要があることがよくあります。電子メールの送信、レポートの生成、大量のデータの処理など。これらのタスクをビュー関数で直接処理すると、リクエストの応答時間が長すぎて、ユーザー エクスペリエンスが低下します。システムのパフォーマンスと応答速度を向上させるために、非同期タスク キューを使用してこれらの時間のかかるタスクを処理できます。 Celery は広く使用されている Python 用の非同期タスク キュー フレームワークであり、Redis はそのデフォルトのメッセージ ミドルウェアです。この記事では、Celery、Redis、Django を使用して非同期タスク キューを実装する方法を紹介し、具体的なコード例を示します。
ステップ 1: Celery、Redis、および Django をインストールする
最初に Celery、Redis、および Django をインストールし、Django 構成ファイルで関連する構成を行う必要があります。
- Celery のインストール: コマンド ラインで次のコマンドを実行して Celery をインストールします:
$ pip install Celery
- Redis のインストール: Celery はデフォルトで Redis をメッセージ ミドルウェアとして使用します。 Redis をインストールし、Redis サーバーが実行されていることを確認する必要があります。
- Django の構成: 次の構成を Django 構成ファイル (settings.py) に追加します:
# 使用Redis作为消息中间件 CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
ステップ 2: Celery タスクを作成する
次に、 Celery タスクを実行し、対応するタスク関数を定義します。たとえば、電子メールを送信するタスクを作成してみましょう。
- Django のプロジェクト ディレクトリに task.py という名前のファイルを作成し、次のコードを追加します:
from celery import shared_task from django.core.mail import send_mail @shared_task def send_email_task(subject, message, from_email, recipient_list): send_mail(subject, message, from_email, recipient_list)
- Django のビュー関数 Celery タスクを呼び出します:
from .tasks import send_email_task def send_email_view(request): # 获取邮件的相关参数 subject = 'Test Email' message = 'This is a test email.' from_email = 'sender@example.com' recipient_list = ['recipient@example.com'] # 调用Celery任务 send_email_task.delay(subject, message, from_email, recipient_list) return HttpResponse('Email sent!')
ステップ 3: Celery ワーカーの開始
Celery は分散アーキテクチャで実行され、タスクの処理を担当する複数のワーカーが存在します。タスクキュー内のタスクを処理するには、コマンドラインで Celery ワーカーを起動する必要があります。
次のコマンドを実行してワーカーを開始します:
$ celery -A your_project_name worker -l info
注、「your_project_name」を Django プロジェクトの名前に置き換えてください。
ステップ 4: Django サーバーを実行する
Celery ワーカーを開始する前に、Django サーバーを実行する必要があります。プロジェクトのルート ディレクトリで次のコマンドを実行します。
$ python manage.py runserver
これで、ブラウザで対応する表示機能にアクセスし、Celery のログを観察してタスクの実行を確認できるようになります。
概要:
Celery、Redis、Django を使用すると、非同期タスク キューを簡単に実装できます。時間のかかるタスクをタスクキューに入れることで、システムのパフォーマンスと応答速度が大幅に向上し、ユーザーエクスペリエンスが向上します。同時に、Celery の分散アーキテクチャにより、システムの処理能力を柔軟に拡張できます。この記事が、Celery、Redis、Django を使用して非同期タスク キューを実装する方法を理解するのに役立つことを願っています。
参考リンク:
- Celery 公式ドキュメント: https://docs.celeryproject.org/en/stable/index.html
- Django 公式ドキュメント: https ://docs.djangoproject.com/
以上がCelery、Redis、Django を使用して非同期タスク キューを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

Redis指令を使用するには、次の手順が必要です。Redisクライアントを開きます。コマンド(動詞キー値)を入力します。必要なパラメーターを提供します(指示ごとに異なります)。 Enterを押してコマンドを実行します。 Redisは、操作の結果を示す応答を返します(通常はOKまたは-ERR)。

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

Redisを使用して操作をロックするには、setnxコマンドを介してロックを取得し、有効期限を設定するために有効期限コマンドを使用する必要があります。特定の手順は次のとおりです。(1)SETNXコマンドを使用して、キー価値ペアを設定しようとします。 (2)expireコマンドを使用して、ロックの有効期限を設定します。 (3)Delコマンドを使用して、ロックが不要になったときにロックを削除します。

Redisソースコードを理解する最良の方法は、段階的に進むことです。Redisの基本に精通してください。開始点として特定のモジュールまたは機能を選択します。モジュールまたは機能のエントリポイントから始めて、行ごとにコードを表示します。関数コールチェーンを介してコードを表示します。 Redisが使用する基礎となるデータ構造に精通してください。 Redisが使用するアルゴリズムを特定します。

Redisは、メッセージミドルウェアとして、生産消費モデルをサポートし、メッセージを持続し、信頼できる配信を確保できます。メッセージミドルウェアとしてRedisを使用すると、低遅延、信頼性の高いスケーラブルなメッセージングが可能になります。

Redisサーバーを起動する手順には、以下が含まれます。オペレーティングシステムに従ってRedisをインストールします。 Redis-Server(Linux/Macos)またはRedis-Server.exe(Windows)を介してRedisサービスを開始します。 Redis-Cli ping(Linux/macos)またはRedis-Cli.exePing(Windows)コマンドを使用して、サービスステータスを確認します。 Redis-Cli、Python、node.jsなどのRedisクライアントを使用して、サーバーにアクセスします。
