Integrating 🔗 Celery with Django via Redis server ,To-Do asynchronously 👀task without stopping the main-flow 📃 of Django-project .It increase your speed 🚀 and user experience 🤵 of website . This repo explain how to setup Celery,and integrate it with the Django-Framework.
Note : Steps to steup Celery on production-side is different
🏁 Reference link to setup Celery on production side
Celery package help us to asynchronous tasks on different worker 🖥️ ,That is on Redis server. The Celery also have some great features in scheduling 🕐 task after a certain period of time. The tasks are excuted on different server (Redis server), and are not run on Django-Server.If we run long and complicated tasks on django server it will reduced the efficiency of website
Modern users expect pages to load instantaneously ⚡, to solve this we consider many solutions like multiprocessing, multithreading 🧵, asynchronous functions using async/await or the Message Queues.
Use the package manager pip to install the following modules and packages.
pip install -r requirements.txtOpen terminal and write following commands 📝
To run Celery worker
celery -A your_django_project_name.celery worker --pool=solo -l infoAnd in separate terminal run django server
python manage.py runserverChange the settings for the sender-mail credential in the settings.py file , enter the sender mail and sender mail-password (SMTP configuartion)
Task are python functions which can be called in the django-project and also be scheduled at particular time.
Task-function can be written in task.py file and can be imported anywhere in the project
@task()
def Send_Mail_With_Celery(email):
your function goes here....
return "done"
calling function
Send_Mail_With_Celery.delay(args)
Increase Speed ⚡ and User-experience of website
NOTE the difference : Celery does not stoped the next page from loading and done the task on worker whereas Without using Celery it took almost 3 seconds ⌛ , to load next page
This is just a small-function but imagine making operations on large user-database ,it would be not good
Setup Celery in Django to asynchronous tasks
Pull requests are welcome 🖤. For major changes, please open an issue first to discuss what you would like to change.


