Commands vs Jobs no Laravel, qual usar?

Para quem está iniciando no Laravel muitas vezes acaba se perguntando qual componente utilizar para atividades em background, Commands ou Jobs?
E sabe de uma coisa? Também já tive essa mesma dúvida, por mais que na teoria sejam bem semelhantes, na prá…


This content originally appeared on DEV Community and was authored by Arthur Bandeira

Para quem está iniciando no Laravel muitas vezes acaba se perguntando qual componente utilizar para atividades em background, Commands ou Jobs?
E sabe de uma coisa? Também já tive essa mesma dúvida, por mais que na teoria sejam bem semelhantes, na prática nem tanto. Vou começar explicando um pouco dos 2 separadamente e para finalizar irei dar uma comparação mais concisa de ambos.

Commands:

  • Uso principal: Commands são utilizados para executar tarefas no terminal (CLI). Eles são tipicamente comandos personalizados que você define para serem executados manualmente via linha de comando.
  • Exemplo de uso: Tarefas administrativas, como limpeza de banco de dados, envio de e-mails em massa, ou qualquer outro tipo de rotina que você queira executar manualmente.
  • Criação: Criados com o comando php artisan make:command. Eles ficam na pasta app/Console/Commands.
  • Execução: São chamados diretamente no terminal com o comando php artisan <nome_do_comando>.

Jobs:

  • Uso principal: Jobs são tarefas específicas que você deseja processar em segundo plano (background). Eles são frequentemente usados em conjunto com queues (filas).
  • Exemplo de uso: Processamento de dados demorados, como redimensionamento de imagens, envio de emails, ou notificações que não precisam ser imediatas.
  • Criação: Criados com o comando php artisan make:job. Eles ficam na pasta app/Jobs.
  • Execução: São chamados a partir do código da aplicação e podem ser empilhados em uma queue para serem processados de maneira assíncrona.

Comparação final:

Image description

Essencialmente, Commands são usados para tarefas administrativas ou interativas, enquanto Jobs são ideais para processamento em segundo plano e trabalhos assíncronos.

Espero que gostem desse pequeno resumo mas de suma importância a respeito destes dois componentes super importantes no ecossistema não só do framework Laravel, mas também da web em geral. Nesse pequeno post, me concentrei apenas em mostrar em quais situações reais serão usados ambos e não a funcionalidade dentro do serviço em si, o que pode ser assunto separado para cada um deles nos próximos posts (pois há muito conteúdo 😅).


This content originally appeared on DEV Community and was authored by Arthur Bandeira


Print Share Comment Cite Upload Translate Updates
APA

Arthur Bandeira | Sciencx (2024-09-07T16:10:08+00:00) Commands vs Jobs no Laravel, qual usar?. Retrieved from https://www.scien.cx/2024/09/07/commands-vs-jobs-no-laravel-qual-usar/

MLA
" » Commands vs Jobs no Laravel, qual usar?." Arthur Bandeira | Sciencx - Saturday September 7, 2024, https://www.scien.cx/2024/09/07/commands-vs-jobs-no-laravel-qual-usar/
HARVARD
Arthur Bandeira | Sciencx Saturday September 7, 2024 » Commands vs Jobs no Laravel, qual usar?., viewed ,<https://www.scien.cx/2024/09/07/commands-vs-jobs-no-laravel-qual-usar/>
VANCOUVER
Arthur Bandeira | Sciencx - » Commands vs Jobs no Laravel, qual usar?. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/07/commands-vs-jobs-no-laravel-qual-usar/
CHICAGO
" » Commands vs Jobs no Laravel, qual usar?." Arthur Bandeira | Sciencx - Accessed . https://www.scien.cx/2024/09/07/commands-vs-jobs-no-laravel-qual-usar/
IEEE
" » Commands vs Jobs no Laravel, qual usar?." Arthur Bandeira | Sciencx [Online]. Available: https://www.scien.cx/2024/09/07/commands-vs-jobs-no-laravel-qual-usar/. [Accessed: ]
rf:citation
» Commands vs Jobs no Laravel, qual usar? | Arthur Bandeira | Sciencx | https://www.scien.cx/2024/09/07/commands-vs-jobs-no-laravel-qual-usar/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.