rq talk

30
RQ by Selwin Ong, 27/04/2013 Tuesday, April 30, 13

description

RQ: Job Queue http://www.python.or.id/2013/04/kopi-darat-komunitas-python-indonesia.html

Transcript of rq talk

Page 1: rq talk

RQby Selwin Ong, 27/04/2013

Tuesday, April 30, 13

Page 2: rq talk

http://python-rq.org

Tuesday, April 30, 13

Page 3: rq talk

Apa itu RQ?

RQ is a Job Queue Library

It’s simple

Tuesday, April 30, 13

Page 4: rq talk

The problem

Anda punya (web) app canggih

Perlu mengirimkan email

Membuat laporan

Memanggil API situs lain

Tuesday, April 30, 13

Page 5: rq talk

Atau mungkin...

Apapun yang seharusnya di luar request/response cycle

Tuesday, April 30, 13

Page 6: rq talk

Mencari solusi...

Anda mulai mencari solusi...

Tuesday, April 30, 13

Page 7: rq talk

Alternatif 1

Tuesday, April 30, 13

Page 8: rq talk

Alternative 2

:(

Tuesday, April 30, 13

Page 9: rq talk

Disclaimer

Saya salah satu dari dua core developer RQ

Subjective opinion ahead ;)

Tuesday, April 30, 13

Page 10: rq talk

Ok...

Jadi kita menggunakan Celery

Ada 1 masalah baru

Tuesday, April 30, 13

Page 11: rq talk

Sekarang kita perlu belajar...

Rabbit MQ

AMQP

Channels, Exchanges

Routing Keys

Result store (biasanya database)

Tuesday, April 30, 13

Page 12: rq talk

Tuesday, April 30, 13

Page 13: rq talk

Disclaimer

Kaya Fitur

Reliable

Tuesday, April 30, 13

Page 14: rq talk

Tapi

!= Simple

Tuesday, April 30, 13

Page 15: rq talk

http://python-rq.org

https://github.com/nvie/rq

Tuesday, April 30, 13

Page 16: rq talk

Teknologi

Tuesday, April 30, 13

Page 17: rq talk

Prinsip

1. Simple

2. Reliable

Tuesday, April 30, 13

Page 18: rq talk

Simplicity

Zero config

Hanya memerlukan Redis

Tuesday, April 30, 13

Page 19: rq talk

Instalasi

pip install rq

Tuesday, April 30, 13

Page 20: rq talk

Penggunaan

q = Queue(connection=redis)

q.enqueue(send_mail, ‘[email protected]’)

Tuesday, April 30, 13

Page 21: rq talk

Penggunaan

DEMO

Tuesday, April 30, 13

Page 22: rq talk

Production ready

750+ Stars di Github

Tuesday, April 30, 13

Page 23: rq talk

Production ready

Sudah memroses milyaran Jobs

Tuesday, April 30, 13

Page 24: rq talk

Coming soon...

Concurrent workers

Gevent, Pre-forking worker

https://github.com/nvie/new_workers

Tuesday, April 30, 13

Page 25: rq talk

Coming soon...

Job scheduling

https://github.com/ui/rq-scheduler

Tuesday, April 30, 13

Page 26: rq talk

Coming soon...

Job dependency

https://github.com/nvie/rq/pull/207

Tuesday, April 30, 13

Page 27: rq talk

Job dependency

job = q.enqueue(generate_report)

q.enqueue(send_email, after=job)

Tuesday, April 30, 13

Page 28: rq talk

Tuesday, April 30, 13