Rumah > Artikel > pembangunan bahagian belakang > Pengalaman praktikal: Mengintegrasikan Celery dan Redis dalam Django untuk melaksanakan tugas tak segerak
Pengalaman praktikal: Mengintegrasikan Celery dan Redis dalam Django untuk melaksanakan tugas tak segerak
Pengenalan:
Memandangkan kerumitan aplikasi web terus meningkat, banyak operasi memerlukan banyak masa dan sumber. Untuk meningkatkan pengalaman pengguna dan kecekapan sistem, pembangun selalunya perlu menukar beberapa operasi yang memakan masa kepada tugas tak segerak untuk dilaksanakan. Dalam Django, kami boleh melaksanakan tugas tak segerak dengan menyepadukan Celery dan Redis. Artikel ini akan memperkenalkan anda cara mengintegrasikan Celery dan Redis dalam Django, dengan contoh kod praktikal.
pip install celery
Kemudian, untuk memasang Redis, anda boleh menggunakan arahan berikut:
sudo apt-get install redis-server
Selepas pemasangan selesai, kita perlu mengkonfigurasi projek Django supaya ia tahu bahawa kita akan menjadi menggunakan Saderi dan Redis. Dalam fail settings.py projek, tambahkan kod berikut:
# CELERY SETTINGS CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
Di sini kami nyatakan alamat setempat dan pelabuhan Redis. Pastikan Redis anda berjalan dan mendengar pada port yang ditentukan.
from celery import Celery app = Celery('myapp', broker='redis://localhost:6379/0') @app.task def add(x, y): return x + y
Dalam contoh ini, kami mencipta aplikasi Saderi dan mentakrifkan tugas bernama add. Tugas tambah menerima dua parameter x dan y dan mengembalikan jumlahnya.
from myapp.tasks import add def my_view(request): x = 10 y = 20 add.delay(x, y) return HttpResponse("Task added to the queue.")
Dalam contoh ini, kami mengimport tugas tambah yang ditakrifkan sebelum ini dan memanggilnya dalam fungsi paparan. Kami menggunakan kaedah delay() untuk menambah tugasan pada baris gilir Saderi dan segera mengembalikan HttpResponse kepada pengguna. Dengan cara ini, pengguna tidak akan disekat semasa melakukan operasi yang memakan masa.
celery -A myapp worker -l info
Ini akan memulakan pekerja Saderi dan mula memproses tugas dalam baris gilir. Anda boleh menetapkan tahap log dengan parameter -l.
pip install flower
Setelah pemasangan selesai, buka tetingkap terminal baharu dan jalankan arahan berikut:
flower -A myapp --port=5555
Ini akan memulakan pelayan Flower dan mendengar pada port 5555. Anda boleh melawat localhost:5555 dalam penyemak imbas anda untuk melihat maklumat seperti tugasan yang sedang dijalankan dan status tugasan.
Kesimpulan:
Dengan menyepadukan Celery dan Redis, kami boleh mencapai pemprosesan tugas tak segerak yang cekap dalam Django. Artikel ini merangkumi langkah asas untuk mengkonfigurasi dan menggunakan Celery dalam projek Django, dan menyediakan contoh kod praktikal. Saya harap artikel ini dapat membantu anda mencapai pemprosesan tugas tak segerak yang lebih cekap dalam pembangunan.
Atas ialah kandungan terperinci Pengalaman praktikal: Mengintegrasikan Celery dan Redis dalam Django untuk melaksanakan tugas tak segerak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!