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

王林
Lepaskan: 2023-09-26 12:10:43
asal
1732 orang telah melayarinya

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
    Salin selepas log masuk

  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'
    Salin selepas log masuk
    Salin selepas log masuk

  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
    Salin selepas log masuk

  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
    Salin selepas log masuk

  6. Dapatkan hasil pelaksanaan tugas:

    Dapatkan hasil pelaksanaan tugas melalui kaedah get objek AsyncResult:

    from myapp.tasks import add
    
    result = add.delay(2, 3)
    Salin selepas log masuk

  7. .
kod:

settings.py konfigurasi fail:

result = AsyncResult(task_id)
print(result.result)
Salin selepas log masuk

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'
Salin selepas log masuk
Salin selepas log masuk

views.py fail:

from celery import shared_task

@shared_task
def add(x, y):
    return x + y
Salin selepas log masuk

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})
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!