Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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.

Honza Javorek

May 19, 2012
Tweet

More Decks by Honza Javorek

Other Decks in Technology

Transcript

  1. 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ěď
  2. Q v angličtině queue čteme [kjů] což je totéž jako

    Q Co konkrétně googlit: message queue
  3. Web App Serva', yeah anotha' Web App Serva' Massive Gangsta'

    Message Queue Broka' Black Worker Serva' Brotha's
  4. 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
  5. 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ů)
  6. 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
  7. 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, ...
  8. 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
  9. 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)