Cara mengintegrasikan Celery dan Redis dalam Django untuk melaksanakan pemprosesan tugas tak segerak
Pengenalan:
Dalam aplikasi web, terdapat banyak tugas yang memakan masa, seperti menghantar e-mel, memproses imej, menjana laporan, dsb. Jika tugasan ini diproses secara serentak, ia akan menjejaskan pengalaman pengguna dengan serius, jadi sistem pemprosesan tugas tak segerak perlu digunakan.
Django ialah rangka kerja web Python yang popular, dan Celery ialah sistem baris gilir tugas teragih sumber terbuka yang menyediakan penyelesaian pemprosesan tugas tak segerak. Untuk melaksanakan pemprosesan tugas tak segerak, kami juga perlu menggunakan Redis sebagai broker mesej Celery.
Artikel ini akan memperkenalkan cara mengintegrasikan Celery dan Redis dalam Django untuk mencapai pemprosesan tugas tak segerak. Perkara berikut akan dibahagikan kepada empat bahagian untuk diterangkan: pemasangan dan konfigurasi, mencipta tugas, memanggil tugas dan memantau tugas. Konfigurasi pemasangan
di sini Konfigurasi menentukan penggunaan Redis sebagai broker mesej dan kedai hasil.Buat fail bernama celery.py dalam direktori akar projek Django dan tambah kandungan berikut:
pip install celery redis
Jalankan arahan berikut dalam terminal untuk memulakan Pekerja Saderi:
# Celery配置 CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
2. Buat tugasan
Buat fail tasks.py
Buat fail bernama tasks.py dalam direktori aplikasi Django, Dan tambah yang berikut:
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()
Di sini tugas yang dipanggil tambah ditakrifkan yang menerima dua parameter x dan y dan mengembalikan jumlahnya.
3. Panggil tugasan
Tugas saderi boleh dipanggil dalam fungsi paparan Django atau di tempat lain dengan cara berikut:celery -A project worker --loglevel=info
Untuk memantau pelaksanaan tugas dalam Django, anda boleh menggunakan alat Bunga yang disediakan oleh Celery. Ia boleh dipasang dan dikonfigurasikan dengan mengikuti langkah-langkah:
from celery import shared_task @shared_task def add(x, y): return x + y
Mulakan Bunga dengan menjalankan arahan berikut di terminal:
from app.tasks import add result = add.delay(1, 2)
Lawati Bunga
Ringkasan:
Melalui langkah di atas, kami boleh menyepadukan Celery dan Redis dalam Django untuk melaksanakan pemprosesan tugas tak segerak. Apabila membangunkan aplikasi web, pemprosesan tugas tak segerak boleh meningkatkan pengalaman pengguna dan prestasi sistem, jadi ia mempunyai nilai aplikasi yang luas dalam projek sebenar. Pada masa yang sama, dengan memantau pelaksanaan tugas, kami boleh menemui dan menyelesaikan masalah dengan segera dalam pemprosesan tugas untuk memastikan kestabilan dan kebolehpercayaan sistem.
Atas ialah kandungan terperinci Bagaimana untuk mengintegrasikan Celery dan Redis dalam Django untuk melaksanakan pemprosesan tugas tak segerak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!