ホームページ >バックエンド開発 >Python チュートリアル >Celery Redis Django の技術分析: 高可用性の非同期タスク処理の実現
Celery Redis Django 技術分析: 高可用性の非同期タスク処理を実現するには、特定のコード例が必要です
はじめに:
1. Celery 非同期タスク処理フレームワークの概要:
2. Redis データベースの概要:
Celery と Redis をインストールします:
pip install celery pip install redis
Django settings.py ファイルを構成します:
# Celery配置 CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json'
タスクの作成:
from celery import shared_task @shared_task def add(x, y): return x + y
Celery ワーカーを開始します:
celery -A myproject worker -l info
非同期タスクをトリガーします:
from myapp.tasks import add result = add.delay(2, 3)
タスクの実行結果を取得する:
result = AsyncResult(task_id) print(result.result)
4. サンプルコード:
# Celery配置 CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json'tasks.py ファイル:
from celery import shared_task @shared_task def add(x, y): return x + yviews.py ファイル:
from django.http import JsonResponse from myapp.tasks import add def my_view(request): result = add.delay(2, 3) return JsonResponse({'task_id': result.id})結果取得コード:
from celery.result import AsyncResult from myapp.tasks import add def getResult(request, task_id): result = AsyncResult(task_id) if result.ready(): return JsonResponse({'result': result.result}) else: return JsonResponse({'status': 'processing'})
以上がCelery Redis Django の技術分析: 高可用性の非同期タスク処理の実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。