ホームページ バックエンド開発 Python チュートリアル Celery と Redis を Django に統合して非同期タスク処理を実装する方法

Celery と Redis を Django に統合して非同期タスク処理を実装する方法

Sep 28, 2023 pm 05:40 PM
redis celery django

Celery と Redis を Django に統合して非同期タスク処理を実装する方法

Django で Celery と Redis を統合して非同期タスク処理を実装する方法

はじめに:
Web アプリケーションには、次のような時間のかかるタスクがたくさんあります。電子メールの送信、画像の処理、レポートの生成などを行います。これらのタスクが同期的に処理されると、ユーザー エクスペリエンスに重大な影響を与えるため、非同期タスク処理システムを使用する必要があります。

Django は人気のある Python Web フレームワークであり、Celery は非同期タスク処理ソリューションを提供するオープンソースの分散タスク キュー システムです。非同期タスク処理を実装するには、Redis を Celery のメッセージ ブローカーとして使用する必要もあります。

この記事では、Django で Celery と Redis を統合し、非同期タスク処理を実現する方法を紹介します。以下、インストールと設定、タスクの作成、タスクの呼び出し、タスクの監視の4つのパートに分けて説明します。

1. インストール構成

  1. Celery と Redis のインストール
    pip コマンドを使用して Celery と Redis をインストールします:

    pip install celery redis
    ログイン後にコピー
  2. Django 設定を構成する
    Django プロジェクトの settings.py ファイルに次の構成を追加します。

    # Celery配置
    CELERY_BROKER_URL = 'redis://localhost:6379/0'
    CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
    ログイン後にコピー

    ここでの構成では、メッセージ ブローカーおよび結果ストレージとして Redis を使用することを指定します。

  3. Celery Worker を開始します
    Django プロジェクトのルート ディレクトリに celery.py という名前のファイルを作成し、次の内容を追加します:

    from celery import Celery
    import os
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
    
    app = Celery('project')
    app.config_from_object('django.conf:settings', namespace='CELERY')
    app.autodiscover_tasks()
    ログイン後にコピー

    機能は次のとおりです。 Celery インスタンスを作成し、Django プロジェクトの構成を読み込みます。

ターミナルで次のコマンドを実行して Celery Worker を起動します:

celery -A project worker --loglevel=info
ログイン後にコピー

2. タスクの作成

  1. タスクを作成します。 py ファイル
    Tasks.py という名前のファイルを Django プロジェクトのアプリ ディレクトリに作成し、次の内容を追加します:

    from celery import shared_task
    
    @shared_task
    def add(x, y):
     return x + y
    ログイン後にコピー

    ここでは add という名前のタスクが定義されており、2 つのパラメーター x と y を受け取ります。そしてその合計を返します。

3. タスクの呼び出し
Celery タスクは、Django のビュー関数または他の場所で次の方法で呼び出すことができます:

from app.tasks import add

result = add.delay(1, 2)
ログイン後にコピー

Delay() メソッドとパラメーターは次のとおりです。ここで使用されます。 add タスクを呼び出し、結果を result 変数に保存します。

4. タスクの監視
Django でのタスクの実行を監視するには、Celery が提供する Flower ツールを使用できます。次の手順でインストールして構成できます。

  1. Flower のインストール
    pip コマンドを使用して Flower をインストールします:

    pip install flower
    ログイン後にコピー
  2. Start Flower
    ターミナルで次のコマンドを実行して Flower を開始します:

    celery flower --broker=redis://localhost:6379/0
    ログイン後にコピー
  3. Fflower にアクセス
    ブラウザで http://localhost:5555 にアクセスして Flower モニタリング インターフェイスに入ります。タスクの実行を監視したり、タスクの詳細を表示したりできます。

概要:
上記の手順により、Django に Celery と Redis を統合して、非同期タスク処理を実装できます。 Web アプリケーションを開発する場合、非同期タスク処理はユーザー エクスペリエンスとシステム パフォーマンスを大幅に向上させることができるため、実際のプロジェクトで広範な応用価値があります。同時に、タスクの実行を監視することで、タスク処理の問題点を迅速に発見・解決し、システムの安定性と信頼性を確保します。

以上がCelery と Redis を Django に統合して非同期タスク処理を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Redisクラスターモードの構築方法 Redisクラスターモードの構築方法 Apr 10, 2025 pm 10:15 PM

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

基礎となるRedisを実装する方法 基礎となるRedisを実装する方法 Apr 10, 2025 pm 07:21 PM

Redisはハッシュテーブルを使用してデータを保存し、文字列、リスト、ハッシュテーブル、コレクション、注文コレクションなどのデータ構造をサポートします。 Redisは、スナップショット(RDB)を介してデータを維持し、書き込み専用(AOF)メカニズムを追加します。 Redisは、マスタースレーブレプリケーションを使用して、データの可用性を向上させます。 Redisは、シングルスレッドイベントループを使用して接続とコマンドを処理して、データの原子性と一貫性を確保します。 Redisは、キーの有効期限を設定し、怠zyな削除メカニズムを使用して有効期限キーを削除します。

Redis-Serverが見つからない場合はどうすればよいですか Redis-Serverが見つからない場合はどうすればよいですか Apr 10, 2025 pm 06:54 PM

Redis-Serverが見つからない問題を解決するための手順:インストールを確認して、Redisが正しくインストールされていることを確認します。環境変数Redis_hostとredis_portを設定します。 Redis Server Redis-Serverを起動します。サーバーがRedis-Cli pingを実行しているかどうかを確認します。

Redisクラスターはどのように実装されていますか Redisクラスターはどのように実装されていますか Apr 10, 2025 pm 05:27 PM

Redis Clusterは、Redisインスタンスの水平拡張を可能にする分散展開モデルであり、ノード間通信、ハッシュスロット部門キースペース、ノード選挙、マスター奴隷レプリケーション、コマンドリダイレクトを通じて実装されます。ハッシュスロット:キースペースをハッシュスロットに分割して、キーの責任ノードを決定します。ノード選挙:少なくとも3つのマスターノードが必要であり、選挙メカニズムを通じて1つのアクティブマスターノードのみが保証されます。マスタースレーブレプリケーション:マスターノードはリクエストの書き込みを担当し、スレーブノードはリクエストとデータレプリケーションを読む責任があります。コマンドリダイレクト:クライアントはキーを担当するノードに接続し、ノードは誤ったリクエストをリダイレクトします。トラブルシューティング:障害検出、オフラインのマーク、および再

Redisのすべてのキーを表示する方法 Redisのすべてのキーを表示する方法 Apr 10, 2025 pm 07:15 PM

Redisのすべてのキーを表示するには、3つの方法があります。キーコマンドを使用して、指定されたパターンに一致するすべてのキーを返します。スキャンコマンドを使用してキーを繰り返し、キーのセットを返します。情報コマンドを使用して、キーの総数を取得します。

Redis Zsetの使用方法 Redis Zsetの使用方法 Apr 10, 2025 pm 07:27 PM

Redis Orderedセット(ZSET)は、並べ替えられた要素を保存し、関連するスコアでソートするために使用されます。 zsetを使用する手順には次のものがあります。1。zsetを作成します。 2。メンバーを追加します。 3.メンバースコアを取得します。 4。ランキングを取得します。 5.ランキング範囲のメンバーを取得します。 6.メンバーを削除します。 7.要素の数を取得します。 8。スコア範囲のメンバーの数を取得します。

Redisのバージョン番号を表示する方法 Redisのバージョン番号を表示する方法 Apr 10, 2025 pm 05:57 PM

Redisバージョン番号を表示するには、次の3つの方法を使用できます。(1)情報コマンドを入力し、(2) - versionオプションでサーバーを起動し、(3)構成ファイルを表示します。

鍵はRedisクエリにとってどのようにユニークですか 鍵はRedisクエリにとってどのようにユニークですか Apr 10, 2025 pm 07:03 PM

Redisは、キーの一意性を確保するために5つの戦略を使用します。1。名前空間分離。 2。ハッシュデータ構造。 3.データ構造を設定します。 4。文字列キーの特殊文字。 5。LUAスクリプト検証。特定の戦略の選択は、データ組織、パフォーマンス、およびスケーラビリティ要件に依存します。

See all articles