celer a Rabbitmq v Django a monitorování s květem, jen pár kroků k tomu, aby Async fungoval

V mých 6 letech zkušeností s kódováním je Django bezpochyby nejlepší rámec, se kterým jsem kdy pracoval. Občas budeme vytvářet jednoduchou aplikaci Django pro spouštění asynchronních úloh na pozadí pomocí celeru a RabbitMQ.

Python 3.6.8, RabbitMQ 3.6.10

Django==2.2.3 , květina==0.9.3 , celer==4.3.0

instalovat RabbitMQ :

apt-get install rabbitmq-server

RabbitMQ služba se spustí automaticky po instalaci. Server můžete spustit ručně spuštěním následujícího příkazu na příkazovém řádku.

rabbitmq-server

Po RabbitMQ instalaci, musíte nainstalovat python a souvisejících balíček s pip příkaz jako:

pip install Django
pip install celery

Pak, musíte vytvořit Django projekt s jednoduchou aplikaci, jsme se vytvořit djangocelery projekt s app l, můžete naklonovat djangocelery projektu na mé GitHub.

Djangocelery projektu

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

první krok musíte přidat CELERY_BROKER_URL konfiguraci settings.py soubor:

nastavení.py

CELERY_BROKER_URL = ‘amqp://localhost’

Přidat Celer do vašeho Django Projektu

Vytvořte soubor s názvem celery.py na sousedním `settings.py soubor,

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

Tento soubor bude obsahovat celer konfigurace pro náš projekt, Přidejte následující kód `celery.py soubor :

výše uvedený kód vytvoří instanci našeho projektu, poslední řádek pověřuje celer auto-objevte všechny asynchronní úlohy pro všechny aplikace uvedené v sekci `INSTALLED_APPS`.

celer bude hledat definice asynchronních úloh v souboru s názvem `tasks.py ‚ soubor v každém z adresářů aplikací.

Upravit __init__.py

nyní upravovat __init__.py soubor v kořenovém projektu tuto cestu :

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

otevřete ji a zkopírujte níže uvedený kód do souboru a uložit.

to zajistí, že naše celerová aplikace je důležitá při každém spuštění Django.

vytvoření první celerové úlohy

můžeme vytvořit soubor s názvem tasks.aplikace celeru, kterou jsme vytvořili v kořenovém adresáři projektu, shromáždí všechny úkoly definované ve všech aplikacích Django uvedených v INSTALLED_APPSconfiguration.

app/tasks.py

app/views.py

Místo volání celery_task přímo, volám celery_task.delay(), Tímto způsobem jsme pokyn, Celer vykonávat tuto funkci v pozadí pak Django udržet zpracování mého názoru celery_view a vrací hladce uživateli

djangocelery/urls.py

Ale předtím, než si to vyzkoušet, podívejte se na následující sekci se dozvíte, jak začít Celer pracovního procesu.

Spuštění pracovního Procesu

Otevřít nový terminál kartu na cestu projektu, a spusťte následující příkaz:

celery -A djangocelery worker -l info

výsledkem je něco jako toto:

celer pracovník informace

pak spustit Django projekt otevřený http://127.0.0.1:8000/celerytask/ pak po několika sekundách, Když se podíváme Celer pracovní Proces znovu, můžeme vidět, že dokončila realizaci, prvním načtení stránky hotové a odeslat úkoly celer pak celer přijaté úkoly:

Received Tasks

After 30seconds tasks functions done and return successful strings :

Úkoly

Sledování Celer Pracovníků

k Dispozici je šikovný web-based nástroj s názvem Květ, který může být použit pro monitorování a správě Celer klastrů, Květina poskytuje podrobné statistiky o úkolu, průběhu a historii, ale také ukazuje další podrobnosti úlohy jako argumenty předané, čas zahájení, runtime, a další.

instalovat Květina

pip install flower

Jakmile je nainstalován, otevřete nový příkazový řádek v adresáři projektu a spusťte tento příkaz :

celery -A djangocelery worker -l info

otevřete nový příkazový řádek v cestě projektu a spusťte tento příkaz :

celery -A djangocelery flower

květina připojení

podrobnosti pak mohou prohlédnout při návštěvě http://localhost:5555/dashboard ve vašem prohlížeči, jako je :

flower dashboard

flower tasks

flower task podrobnosti

navíc :

můžete vymazat všechny čekající úlohy s :

celery -A proj purge

to je to. Být.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.