Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Analisis teknikal Celery Redis Django: mencapai pemprosesan tugas tak segerak ketersediaan tinggi

Analisis teknikal Celery Redis Django: mencapai pemprosesan tugas tak segerak ketersediaan tinggi

王林
王林asal
2023-09-26 12:10:431757semak imbas

Celery Redis Django技术解析:实现高可用的异步任务处理

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:

  1. Pasang Celery dan Redis:
    Dalam persekitaran maya projek Django, gunakan pip untuk memasang Celery dan Redis:

  2. Konfigurasikan tetapan Django py:

    Tambah konfigurasi berikut dalam fail settings.py projek Django:

    pip install celery
    pip install redis

  3. Buat tugasan:

    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'

  4. Mulakan pekerja Saderi:

    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

  5. Cetuskan tugas tak segerak:

    melaksanakan tugasan. tugas tak segerak dalam fungsi paparan atau di tempat lain dalam projek Django:

    celery -A myproject worker -l info

  6. Dapatkan hasil pelaksanaan tugas:

    Dapatkan hasil pelaksanaan tugas melalui kaedah get objek AsyncResult:

    from myapp.tasks import add
    
    result = add.delay(2, 3)

  7. .
kod:

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 + y

Kod 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn