Metglobal
7130674 Projesi Deneme ve Testler
Distributed Task Queue
- Stres Testleri
-
Konfigurasyon optimizasyonu
-
Karşılaşılan sorunlar
-
CELERY_ACKS_LATE, CELERYD_PREFETCH_MULTIPLIER, CELERY_TASK_RESULT_EXPIRES
- https://github.com/fergalwalsh/fifo

FIFO
- Kolay kullanım
- Redis tabanlı (Broker + Result)
- Basit arayüz
- Worker arası iletişim yok
- Concurrency işletim sistemine bırak
- Sonuçlar için result_timeout
- İşler için max_wait
- Toplu işler için basit gruplama arayüzü
Örnek
from fifo import FifoClient
fifo = FifoClient('redis://localhost:6379/0')
# queue up a single task
task_id = fifo.queue_task('example.tasks.multiply', (6, 7),
max_wait=2, result_timeout=30)
# wait for result for at most 5s
result = fifo.wait(task_id, timeout=5)
print(task_id, result['body'])
# queue up many tasks in one call
tasks_args = [(x - 1, x) for x in xrange(10)]
task_ids = fifo.queue_tasks('example.tasks.multiply', tasks_args,
max_wait=30, result_timeout=30)
# wait for all the results for at most 5s
results = fifo.wait_for_group(task_ids, timeout=5)
for task_id, result in results.items():
print(task_id, result['status'], result['body'])
# queue up a single task that will fail
task_id = fifo.queue_task('example.tasks.buggy', None,
max_wait=2, result_timeout=30)
# wait for result for at most 5s
result = fifo.wait(task_id, timeout=5)
print(task_id, result['status'], result['body'])
# queue up a single task
task_id = fifo.queue_task('example.tasks.multiply', (6, 7),
max_wait=2, result_timeout=0)


Testler
- API flow
- Provider adapter
Demo
Ar-Ge Kazanımları
- Canlı ortamda yük altında sistem davranışlarını gözlemleyebilme, monitoring araçları kullanabilme (Graylog, New Relic, Amazon CloudWatch)
- Nosetests, load testing araçlarını gene Python ekosisteminde kullanabilme
- Task Queue yazılımları hakkında daha kapsamlı bilgi sahibi olunup şirket içi open-source proje geliştirebilme
Metglobal
By Mehmet Catalbas
Metglobal
- 822