Python Celery
Asynchronous Task Gone Easy
© 2015, Sebangsa Development Program
Celery
- asynchronous task queue/job queue.
- based on distributed message passing.
- focused on real-time operation, but supports scheduling as well.
http://www.celeryproject.org/
http://docs.celeryproject.org/en/latest/faq.html
Celery.
Task, Worker, dan Broker
Task.
Mendefinisikan apa yang akan terjadi jika sebuah task di panggil
Worker.
Instance dari celery, yang menangani processing untuk tiap task yang diberikan.
Celery.
Task, Worker, dan Broker (cont'd)
>>> from celery import Celery
>>>
>>> celery_app = Celery(**config)
>>>
>>> @celery_app.task
>>> def sumByOne(number):
>>> return number + 1
Broker.
Message-passing handler, storage untuk menyimpan task yang kemudian akan di-consume oleh worker, serta menyimpan result dari task yang telah selesai dieksekusi.
- RabbitMQ
- Redis
Celery.
Task, Worker, dan Broker (cont'd)
# main module celery
~$ sudo pip install -U celery
# untuk throtling koneksi ke RabbitMQ
~$ sudo pip install -U librabbitmq
Instalasi Celery
#: file /etc/apt/sources.list
deb http://www.rabbitmq.com/debian/ testing main
~$ wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
~$ sudo apt-key add rabbitmq-signing-key-public.asc
~$ sudo apt-get update
~$ sudo apt-get install rabbitmq-server
#: more: https://www.rabbitmq.com/install-debian.html
Instalasi RabbitMQ
Demo
Stand Alone Celery
Demo
Celery with Flask
Question?
Fin.
python celery
By Widnyana Putra
python celery
- 870