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