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

Processamento assíncrono com Laravel Concurrency 🚀

Fala, pessoal! đź‘‹

No desenvolvimento de aplicações modernas, a performance é sempre um ponto crítico. Afinal, ninguém gosta de esperar, não é? Pensando nisso, o Laravel 11 trouxe uma funcionalidade fantástica: o Concurrency. Com ele, você consegue executar várias tarefas ao mesmo tempo de forma simples e limpa, com um código menos verboso.

Hoje vou te mostrar como usar essa novidade em um exemplo prático: uma rede social! Vamos lá?

O que Ă© o Laravel Concurrency?

Concurrency permite executar múltiplas operações simultaneamente sem que elas dependam umas das outras. Isso significa que, ao invés de rodar uma tarefa por vez, podemos rodar todas em paralelo e ganhar muito tempo.

Imagine carregar uma dashboard de usuário em uma rede social. Nela, precisamos mostrar:

  1. Amigos do usuário.

  2. Notificações não lidas.

Essas duas tarefas podem ser feitas ao mesmo tempo, e o Concurrency entra exatamente para facilitar isso.

Cenário Prático: Uma Rede Social

Vamos criar um exemplo simples:

• Um usuário acessa a dashboard da rede social.

• Queremos buscar os amigos e as notificações não lidas.

Aqui está o código usando o Concurrency:

use Illuminate\Support\Facades\Concurrency;
use App\Models\User;
use App\Models\Notification;

public function loadUserDashboard($userId)
{
    // Executar mĂşltiplas tarefas simultaneamente
    $results = Concurrency::run([
        'friends' => fn () => User::find($userId)->friends()->get(),
        'unread_notifications' => fn () => Notification::where('user_id', $userId)
                                                       ->whereNull('read_at')
                                                       ->get(),
    ]);

    // Retornar os resultados
    return response()->json([
        'friends' => $results['friends'],
        'unread_notifications' => $results['unread_notifications'],
    ]);
}

O Que Esse CĂłdigo Faz?

  1. Concurrency::run: Aqui estamos executando duas tarefas ao mesmo tempo.

  2. Buscar amigos: Pega a lista de amigos do usuário.

  3. Notificações não lidas: Retorna todas as notificações pendentes.

Resultado: Tudo isso Ă© processado em paralelo, reduzindo o tempo de resposta.

Por Que Isso Ă© Importante?

Vamos pensar no tempo:

• Se cada tarefa demorasse 1 segundo e rodasse uma após a outra:

1s + 1s = 2 segundos.

• Com o Concurrency, as duas tarefas rodam ao mesmo tempo, então:

1 segundo no total!

Conclusão: Sua aplicação fica mais rápida, a experiência do usuário melhora e o código fica muito mais limpo.

Resultado da API

A resposta da API ficaria assim:

{
    "friends": [
        { "id": 2, "name": "JoĂŁo" },
        { "id": 3, "name": "Maria" }
    ],
    "unread_notifications": [
        { "id": 1, "message": "VocĂŞ recebeu uma nova mensagem." }
    ]
}

ConclusĂŁo

O Concurrency é uma funcionalidade poderosa e fácil de usar. Ele resolve um problema comum: rodar múltiplas tarefas sem sacrificar a performance.

Se você trabalha com APIs, dashboards ou processos que demandam muitas consultas ao mesmo tempo, essa é uma solução que vai salvar o seu dia! 🚀

E você? Já pensou em usar o Concurrency no seu projeto? Deixe um comentário contando como aplicaria essa funcionalidade. Vamos trocar ideias!

🔗 Documentação Oficial: Laravel Concurrency

Se curtiu o post, compartilha com os amigos devs! 🚀

Carregando publicação patrocinada...
5
2

Post magnĂ­fico.

Complementando o seu post, é bom deixar claro que embora o tempo de resposta da aplicação seja reduzido ao processar tarefas em paralelo, a execução simultânea de múltiplas operações aumenta a carga sobre o servidor.

Tarefas que exigem muitos recursos, devem utilizar a concorrência de forma mais responsável.

Embora o Concurrency seja uma ferramenta poderosa, é essencial equilibrar sua utilização com os recursos disponíveis para evitar impactos negativos no desempenho do sistema.