zeller és Rabbitmq a Django-ban és a Flower monitoringban, csak néhány lépés az Async működéséhez

6 éves kódolási tapasztalatom során kétségtelenül a Django a legjobb keretrendszer, amellyel valaha dolgoztam. Időnként egy egyszerű Django alkalmazást fogunk építeni az aszinkron feladatok futtatásához a háttérben a zeller és a RabbitMQ segítségével.

Python 3.6.8, RabbitMQ 3.6.10

Django==2.2.3 , flower==0.9.3 , zeller==4.3.0

RabbitMQ telepítése:

apt-get install rabbitmq-server

a RabbitMQ szolgáltatás automatikusan elindul a telepítéskor. A kiszolgálót manuálisan elindíthatja a következő parancs futtatásával a parancssorban.

rabbitmq-server

a RabbitMQ telepítése után telepítenie kell a python és a kapcsolódó csomagot a pip paranccsal, mint például:

pip install Django
pip install celery

ezután létre kell hoznia egy Django projektet egy egyszerű alkalmazással, djangocelery projektet hozunk létre az app l alkalmazással, klónozhatjuk a djangocelery projektet a GitHub-on.

Djangocelery project

djangocelery/|-- app/| |-- migrations/| |-- __init__.py| |-- admin.py| |-- apps.py| |-- models.py| |-- tests.py| +-- views.py|-- djangocelery/| |-- __init__.py| |-- settings.py| |-- urls.py| +-- wsgi.py|-- manage.py+-- requirements.txt

az első lépésben hozzá kell adni a CELERY_BROKER_URL konfigurációt a settings.py fájl:

beállítások.py

CELERY_BROKER_URL = ‘amqp://localhost’

zeller hozzáadása a Django projekthez

Hozzon létre egy nevű fájlt celery.py szomszédos a `settings.py ‘file,

|-- djangocelery/| |-- __init__.py| |-- celery.py| |-- settings.py| |-- urls.py| +-- wsgi.py

Ez a fájl tartalmazza a projektünk zeller konfigurációját, adja hozzá a következő kódot a `celery.py ‘ file:

a fenti kód létrehoz egy példányt a projektünkből, az utolsó sor utasítja a zellert, hogy automatikusan fedezze fel az összes aszinkron feladatot az “INSTALLED_APPS” alatt felsorolt összes alkalmazáshoz.

a zeller megkeresi az aszinkron feladatok definícióit egy ‘nevű fájlban tasks.py’ fájl az egyes alkalmazáskönyvtárakban.

A __szerkesztése init__.py

most edit __init__.py fájl a projekt gyökerében a következő elérési úttal:

|-- djangocelery/| |-- __init__.py

nyissa meg, másolja be a kódot a fájlba, majd mentse el.

Ez biztosítja, hogy a zeller alkalmazásunk minden alkalommal fontos legyen, amikor a Django elindul.

első zeller Feladat létrehozása

létrehozhatunk egy tasks nevű fájlt.py belül Django app, és tegye az összes zeller feladatok ebbe a fájlba, a zeller app hoztunk létre a projekt gyökér összegyűjti az összes meghatározott feladatok az összes Django alkalmazások felsorolt INSTALLED_APPSconfiguration.

app/tasks.py

app/views.py

a celery_task közvetlen hívása helyett a celery_taskot hívom.delay (), így utasítjuk a zellert, hogy hajtsa végre ezt a funkciót a háttérben, majd a Django folytatja a My view celery_view feldolgozását, és simán visszatér a felhasználóhoz

djangocelery/urls.py

de mielőtt kipróbálná, ellenőrizze a következő részt, hogy megtudja, hogyan kell elindítani a zeller munkás folyamatát.

A munkafolyamat elindítása

nyisson meg egy új terminál fület a projekt útvonalán, és futtassa a következő parancsot:

celery -A djangocelery worker -l info

az eredmény valami ilyesmi:

ezután futtassa a Django projektet nyissa meg a http://127.0.0.1:8000/celerytask/ majd néhány másodperc múlva, ha újra ellenőrizzük a zeller munkás folyamatát, láthatjuk, hogy befejezte a végrehajtást, az első betöltési oldal befejeződött, és feladatokat küld a zellernek, majd a zeller kapott feladatokat:

Received Tasks

After 30seconds tasks functions done and return successful strings :

feladatok Kész

monitoring zeller dolgozók

van egy praktikus web-alapú eszköz az úgynevezett virág, amelyet fel lehet használni nyomon követésére és adminisztrálására zeller klaszterek, virág részletes statisztikát feladat előrehaladását és a történelem, azt is mutatja, más feladat részleteit, mint például az érvek telt, kezdési idő, futásidejű, és mások.

install Flower

pip install flower

a telepítés után meg kell nyitnia egy új parancssort a projekt könyvtárában, és futtatnia kell ezt a parancsot :

celery -A djangocelery worker -l info

ezután nyisson meg egy új parancssort a Projekt elérési útján, és futtassa ezt a parancsot :

celery -A djangocelery flower
virág kapcsolat

a részleteket akkor megtekinthető ellátogat http://localhost:5555/dashboard a böngésző, mint :

flower dashboard

flower tasks

flower task részletek

ezen felül :

az összes függőben lévő feladatot törölheti a következővel :

celery -A proj purge

ennyi. Kész.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.