selleri ja Rabbitmq Djangossa ja seuranta Flower, vain pari askelta saada Async toimimaan

minun 6 vuoden koodaus kokemus, epäilemättä, Django on paras puitteet olen koskaan työskennellyt. Ajoittain rakennamme yksinkertaisen Django-sovelluksen, jolla voi suorittaa Async-tehtäviä taustalla sellerin ja RabbitMQ: n avulla.

Python 3.6.8, RabbitMQ 3.6.10

Django==2.2.3 , flower==0.9.3 , celery==4.3.0

install RabbitMQ:

apt-get install rabbitmq-server

RabbitMQ-palvelu käynnistyy automaattisesti asennuksen yhteydessä. Voit käynnistää palvelimen manuaalisesti suorittamalla seuraavan komennon komentorivillä.

rabbitmq-server

RabbitMQ-asennuksen jälkeen sinun täytyy asentaa python ja siihen liittyvä paketti pip-komennolla, kuten:

pip install Django
pip install celery

sitten sinun täytyy luoda Django-projekti yksinkertaisella sovelluksella, me luomme djangocelery-projektin app l: llä, voit kloonata djangocelery-projektin minun Githubillani.

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

ensimmäisessä vaiheessa on lisättävä CELERY_BROKER_URL-kokoonpano settings.py tiedosto:

asetukset.py

CELERY_BROKER_URL = ‘amqp://localhost’

lisää selleri Django-projektiin

Luo tiedosto nimeltä celery.py vieressä sinun ”settings.py” file,

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

this file will contain the celery configuration for our project, Add the following code to the ”celery.py” file:

yllä oleva koodi luo instanssin projektistamme, viimeisellä rivillä ohjeistetaan celeriä automaattisesti löytämään kaikki asynkroniset tehtävät kaikille ”INSTALLLED_APPS” -kohdassa luetelluille sovelluksille.

selleri etsii asynkronisten tehtävien määritelmiä tiedostosta nimeltä `tasks.py ” tiedosto jokaisessa sovellushakemistossa.

muokkaa _ _ init__.py

nyt muokkaa __init__.py tiedosto projektin juuressa tällä polulla:

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

avaa se ja kopioi alla oleva koodi tiedostoon ja tallenna se.

Tämä varmistaa, että Sellerisovelluksemme on tärkeä aina, kun Django alkaa.

ensimmäisen Selleritehtävän luominen

voimme luoda tiedoston nimeltä tehtävät.py sisällä Django app ja laittaa kaikki selleri tehtäviä tähän tiedostoon, selleri app loimme projektin root kerää kaikki tehtävät määritellään kaikissa Django Sovellukset lueteltu INSTALLED_APPSconfiguration.

app/tasks.py

app/views.py

sen sijaan, että soittaisin suoraan celery_taskille, soitan celery_taskille.delay (), näin ohjeistamme Celeriä suorittamaan tämän toiminnon taustalla sitten Django pitää processing my view celery_view: n ja palaa sujuvasti käyttäjälle

djangocelery/urls.py

mutta ennen kuin kokeilet, katso seuraavasta osiosta, miten Sellerityöprosessi aloitetaan.

työprosessin aloittaminen

avaa projektin polulle Uusi pääteikkuna ja suorita seuraava komento:

celery -A djangocelery worker -l info

tuloksena on jotain tällaista:

sellerityöntekijän tiedot

suorita sitten Django-projekti avaa http://127.0.0.1:8000/celerytask/ sitten muutaman sekunnin kuluttua, jos tarkistamme selleri työprosessin uudelleen, voimme nähdä sen suorittaneen suorituksen, ensimmäisen lataussivun valmis ja lähettää tehtävät sellerille sitten selleri sai tehtävät:

Received Tasks

After 30seconds tasks functions done and return successful strings :

tehtävät tehty

sellerityöntekijöiden seuranta

on kätevä web-pohjainen työkalu nimeltä Flower, jota voidaan käyttää selleriklustereiden seurantaan ja hallinnointiin, Flower tarjoaa yksityiskohtaisia tilastoja tehtävän etenemisestä ja historiasta, se näyttää myös muita tehtävän yksityiskohtia, kuten läpäistyt argumentit, alkamisaika, ajonaika ja muut.

install Flower

pip install flower

asennuksen jälkeen on avattava uusi komentorivi projektihakemistoon ja suoritettava tämä komento :

celery -A djangocelery worker -l info

avaa sitten uusi komentorivi projektipolussa ja suorita tämä komento :

celery -A djangocelery flower

kukkaliittymä

yksityiskohdat voi sitten katsoa käymällähttp://localhost:5555/dashboardselaimessa kuten :

flower dashboard

flower tasks

flower task tiedot

lisäksi:

voit poistaa kaikki vireillä olevat tehtävät:

celery -A proj purge

That ’ s it. Tehdä.

Vastaa

Sähköpostiosoitettasi ei julkaista.