Jak přežít frontu a nepředbíhat

Jak přežít frontu a nepředbíhat

Moje přednáška z PyVa o Celery a obecně frontách v Pythonu. Je to takový lehký úvod, nic do hloubky.

7b2e4bf7ecca28e530e1c421f0676c0b?s=128

Honza Javorek

May 19, 2012
Tweet

Transcript

  1. 2.
  2. 3.
  3. 4.
  4. 6.

    Fronta na webu? web server = GUI fronta = tvrdá

    práce na pozadí úkoly, na které nemá web server čas (uživatel čeká...) nebo zdroje, aby je okamžitě vyřídil a vrátil odpověď
  5. 7.
  6. 8.

    Q v angličtině queue čteme [kjů] což je totéž jako

    Q Co konkrétně googlit: message queue
  7. 9.
  8. 10.

    Web App Serva', yeah anotha' Web App Serva' Massive Gangsta'

    Message Queue Broka' Black Worker Serva' Brotha's
  9. 11.

    web servery hážou úkoly do fronty a pokračují ve své

    práci fronta si úkoly hromadí (FIFO) workery (greedy) asynchronně berou úkoly z fronty a zpracovávají je
  10. 12.
  11. 13.

    rychlá odezva stránek (nemusí se udělat okamžitě? do fronty!) procesy

    na pozadí, generování, přepočítávání, zpracovávání, hromadné odesílání... asynchronní zpracování, distribuce přes více serverů (jak webových, tak workerů)
  12. 14.

    Ajajajaj! V žádném případě. Je to asynchronní klient-server technologie, ale...

    řízený frontendem pomalý (HTTP) bez záruk Vhodný akorát k tomu, aby se GUI dotazovalo backendu na stav zpracování. AJAJ
  13. 16.
  14. 17.
  15. 19.
  16. 23.
  17. 24.
  18. 25.
  19. 26.
  20. 27.

    jednoduché na instalaci (na localhostu) open source, aktivní vývoj integrace

    s webovými frameworky (Django, Flask, Pylons, ...) podpora pro velké množství brokerů (RabbitMQ, Redis, Beanstalk, MongoDB, CouchDB, JakákolivDB, ...) plánování úkolů (cron) distribuovaná, využívá jádra procesoru (= paralelní) přístup k return values z úkolů hooks, routing, remote-control, monitoring, serialization, ironing, washing dirty dishes, managing fridge, cooking, cleaning, shopping, taking care of pets, ...
  21. 28.
  22. 29.
  23. 30.
  24. 31.

    je nutné dobře zvládnout instalaci na server framework aplikace v

    balíčku konfigurační soubory nehrát si s init.d – cesta do pekel
  25. 37.
  26. 38.

    fronta – práce všeho druhu, na pozadí broker – posílá

    zprávičky Celery – lepí dohromady naši app, broker, databázi, workery, cron Supervisor – chobotnička na správu procesů na serveru (abychom se nezbláznili z Celery)
  27. 39.