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

PHP Assíncrono com Swoole

PHP Assíncrono com Swoole

O que é e formas de implementar concorrência e paralelismo no PHP com o auxílio da extensão Swoole, multi-threading e Corotinas.

Leo Cavalcante

September 12, 2020
Tweet

Transcript

  1. [assíncrono] ADJETIVO 1. que não é sincrônico, que não apresenta

    sincronia ou sincronismo; assincrônico 2. que gira com uma velocidade diferente da do sincronismo, sem uma relação constante entre a frequência da força eletromotriz e a velocidade (diz-se do motor elétrico de indução, alimentado por corrente alternada) 3. que não é controlado por dispositivo temporizador; que não mantém sincronia
  2. SÍNCRONO [síncrono] 1.que acontece simultaneamente 2.relativo a fatos coincidentes ou

    coexistentes 3.que tem o seu tempo de duração determinado por um mecanismo de sincronismo 4.que ocorre simultaneamente ou em intervalos regulares, controlados por um dispositivo temporizador; que mantém sincronia ⊙ ETIMgr.súgkhronos,os,on 'contemporâneo', pelo lat.tar.synchronus 'id.'
  3. 1.Receber cliente 2.Levar até uma mesa livre ou reservada 3.Anotar

    pedido 4.Solicitar o prato pra cozinha 5.Levar o prato pronto da cozinha até o cliente JORNADA
  4. 1.Receber cliente 2.Levar até uma mesa livre ou reservada 3.Esperar

    o cliente escolher 4.Anotar pedido 5.Solicitar o prato pra cozinha 6.Esperar a cozinha fazer o prato 7.Levar o prato pronto da cozinha até o cliente GARÇOM SÍNCRONO
  5. 1.Receber cliente 2.Levar até uma mesa livre ou reservada 3.Já

    vai atender outro cliente 4.Anotar pedido 5.Solicitar o prato pra cozinha 6.Atender um novo cliente ou levar um prato pronto 7.Levar o prato pronto da cozinha até o cliente GARÇOM ASSÍNCRONO
  6. C10K 2010 – 2M WhatsApp, 24 cores, com Erlang (que

    inspirou a Swoole) 1999 Dan Kegel http://www.erlang-factory.com/upload/presentations/558/efsf2012-whatsapp-scaling.pdf
  7. It's time for web servers to handle ten thousand clients

    simultaneously, don't you think? After all, the web is a big place now. - Dan Kegel http://www.kegel.com/c10k.html
  8. Coroutine based Async PHP programming framework Build high-performance, scalable, concurrent

    TCP, UDP, Unix Socket, HTTP, WebSocket services with PHP and fluent Coroutine API.
  9. • 2012 open-source no GitHub (https://github.com/swoole/swoole-src) • 2013 Swoole v1

    • 2016 v2 com Corotinas • 2017 Refactoring • 2018 v4 com libco da Tencent (https://github.com/Tencent/libco). Tencent: • QQ • WeChat • Epic • Miniclip • Riot (League of Legends e Valorant)
  10. Compared with other async programming frameworks or softwares such as

    Nginx, Tornado, Node.js, Swoole has the built-in PHP coroutine and async support, multiple threads I/O modules. Developers can use sync or async, coroutine API to write the applications or create thousands of light weight coroutines within one PHP process. - https://www.swoole.co.uk/
  11. @marcelgsantos @KennedyTedesco @doubaokun + SWOOLE + ASYNC @deminy @AkitaOnRails Programação

    para Iniciantes Concorrência e Paralelismo | Entendendo Back-End