Rumah > Artikel > pembangunan bahagian belakang > Analisis teknikal Celery Redis Django: mencapai pemprosesan tugas tak segerak ketersediaan tinggi
Celery Redis Django analisis teknikal: Untuk mencapai pemprosesan tugas tak segerak berketersediaan tinggi, contoh kod khusus diperlukan
Pengenalan:
Dalam bidang Internet yang berkembang pesat hari ini, adalah sangat penting untuk mencapai pemprosesan tugas tak segerak dengan ketersediaan tinggi. Artikel ini akan memperkenalkan cara menggunakan Celery, Redis dan Django untuk melaksanakan pemprosesan tugas tak segerak yang sangat tersedia, dan memberikan contoh kod khusus.
1. Pengenalan kepada rangka kerja pemprosesan tugas tak segerak Saderi:
Saderi ialah rangka kerja penjadualan tugas teragih sumber terbuka yang ditulis dalam Python, terutamanya digunakan untuk memproses sejumlah besar tugasan yang diedarkan secara serentak. Ia menyediakan fungsi seperti baris gilir tugas, penghantaran mesej dan pengagihan tugas, dan boleh melaksanakan pemprosesan tugas tak segerak teragih yang cekap dengan mudah.
2. Pengenalan kepada pangkalan data Redis:
Redis ialah pangkalan data dalam memori yang menyimpan data dalam bentuk pasangan nilai kunci. Ia menyokong kegigihan, terbitkan/langgan, pemadaman automatik data tamat tempoh dan fungsi lain, serta berprestasi tinggi dan boleh skala. Dalam Celery, Redis berfungsi sebagai perisian tengah mesej dan bertanggungjawab untuk menyimpan maklumat tugas dan penjadualan untuk memastikan pelaksanaan tugas yang boleh dipercayai.
3. Rangka kerja Django bergabung dengan Celery Redis untuk mencapai pemprosesan tugas tak segerak dengan ketersediaan tinggi:
Pasang Celery dan Redis:
Dalam persekitaran maya projek Django, gunakan pip untuk memasang Celery dan Redis:
Tambah konfigurasi berikut dalam fail settings.py projek Django:
pip install celery pip install redis
Buat fail tasks.py dalam direktori aplikasi projek Django dan tentukan tugas tak segerak:
# 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'
Tukar ke direktori projek Django di terminal dan mulakan pekerja Saderi:
from celery import shared_task @shared_task def add(x, y): return x + y
melaksanakan tugasan. tugas tak segerak dalam fungsi paparan atau di tempat lain dalam projek Django:
celery -A myproject worker -l info
Dapatkan hasil pelaksanaan tugas melalui kaedah get objek AsyncResult:
from myapp.tasks import add result = add.delay(2, 3)
settings.py konfigurasi fail:
result = AsyncResult(task_id) print(result.result)tasks.py fail:
# 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'views.py fail:
from celery import shared_task @shared_task def add(x, y): return x + yKod pemerolehan hasil:
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})Kesimpulan:
Artikel ini memperkenalkan cara untuk mencapai tinggi-Django, Redis ketersediaan pemprosesan tugas tak segerak. Dengan mengkonfigurasi Celery dan Redis, mentakrifkan tugas dan memulakan pekerja Celery, penjadualan tugas tak segerak dan pelaksanaan boleh dicapai. Melalui contoh kod di atas, anda boleh mengalami kelebihan Celery Redis Django, dan seterusnya mengoptimumkan dan mengembangkan mengikut keperluan tertentu. Di atas hanyalah sebahagian kecil daripada analisis teknikal Celery Redis Django. Banyak lagi yang perlu dipelajari dan diterokai.
Atas ialah kandungan terperinci Analisis teknikal Celery Redis Django: mencapai pemprosesan tugas tak segerak ketersediaan tinggi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!