Metglobal

7130674 Projesi Deneme ve Testler 

Distributed Task Queue

  • Stres Testleri
  • Konfigurasyon optimizasyonu

  • Karşılaşılan sorunlar

  1. CELERY_ACKS_LATE, CELERYD_PREFETCH_MULTIPLIER, CELERY_TASK_RESULT_EXPIRES
    
    
  2. 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
Made with Slides.com