Executando verificação de segurança...
2

[Indicação] Do WSGI ao ASGI no Python Django

Olá turma, bão demais aí?! Atualmente estou estudando como criar sites e aplicativos web no backend e após ler o Tutorial de Django - Introdução do @jackson541 fiquei curioso para saber mais sobre o que é WSGI e ASGI num belo framework: O Python Django! 🚀

Mas o mais impressionante é que encontrei um artigo - muito bem escrito por sinal - escrito por Klaus Peter Laube, que é dono deste site e autor deste baita artigo! Obs.: Todos os créditos do artigo Do WSGI ao ASGI - Parte 1 são de Klaus Peter Laube.

O detalhe é que além de ter a resposta que eu precisava, também recebi uma chuva de conhecimentos valiosos explicados de maneira simples e direta ao ponto que tenho certeza que vai te supreender. É mais um artigo, mas com todo o embasamento necessário para entender o que de fato é WSGI e ASGI!!!

Dito isso, resolvi compartilhar aqui os principais tópicos que pode acabar te interessando e te fazer sentir a vontade de ler este baita artigo, mesmo se seu foco não é saber nada sobre Django, WSGI ou ASGI, vale muuuuuuuito a pena lê-lo 😉

Observações

  • É necessário ter um conhecimento mediano de python, compreendendo todos recursos básicos como variáveis, loops, condicionais, etc.
  • Também é necessário ter um certo conhecimento de computação, mas se você é iniciante e quiser se aventurar para aprender os conceitos ali ministrados, é um prato cheio!

Tópicos Abordados

  • CPU, Cores, Processos e Threads

  • Concorrência e Paralelismo
    Concorrência e Paralelismo

Créditos da imagem para Klaslaube
  • Exemplo do Almoço

  • O Famigerado GIL (Global Interpreter Lock)

  • Multithreading e Multiprocessing

  • I/O-bound e CPU-bound
    I/O-bound e CPU-bound

Créditos da imagem para Klasulaube
  • Threads e I/O

  • Asynchronous e asyncio

  • Event Loop

  • asyncio x multithreading

  • Síncrono x Assíncrono

  • Exemplo da Enxadrista

  • async/await

De Volta ao Objetivo

Maaas voltando ao objetivo principal que era entender sobre WSGI e ASGI, vou deixar uma breve explicação sobre o que é cada um.

WSGI

  • Web Server Gateway Interface.
  • wsgi.py: É o arquivo para as configurações síncronas do projeto.
  • É mais tradicional (mais tempo) no Django.
  • Com WSGI, cada workerthread é bloqueada enquanto espera por chamadas de banco de dados ou chamadas de API que ela faz, mas as outras workerthreads não são afetadas.

ASGI

  • Asynchronous Server Gateway Interface.
  • asgi.py: É o arquivo para as configurações assíncronas do projeto.
  • É mais moderno (relativamente novo) no Django.
  • Com o ASGI, cada workerthread individual pode executar várias tarefas muito melhor e pode começar a lidar com outra solicitação enquanto aguarda uma chamada lenta para o banco de dados ou uma API.
  • Portanto, mudar para ASGI pode aumentar um pouco a taxa de transferência máxima no servidor, mas não a velocidade de cada solicitação individual.

Chamada para Ação

Compartilhe você também os artigos que você acharam mais interessantes, que nem eu percebi que este artigo que li é também de utilidade pública não só para django, mas para conceitos que vão além da linguagem em si! E também deixe seus comentáriosss 😄

Referências

Carregando publicação patrocinada...