Site

Fila de Jobs

v4

Jobs são tarefas que rodam em segundo plano — enviar e-mails, gerar relatórios, processar pagamentos. Em vez de travar a página do usuário, você despacha o job e um worker executa depois.


Como funciona

Scheduler (cron) → adiciona job na tabela mucrm_jobs
Worker (php mucrm jobs:run) → busca job → executa handle() → remove da fila

Onde ficam os jobs

app/shared/jobs/send_email_recovery.php
// Namespace: MUCRM\shared\jobs

Jobs estendem MUCRM\engine\queue\job e implementam o método handle().


Exemplo real do projeto

<?php

namespace MUCRM\shared\jobs;

use MUCRM\engine\queue\job;
use MUCRM\engine\mail\mailer;
use MUCRM\shared\mailers\recovery_mail;

class send_email_recovery extends job
{
    public string $queue = 'email';
    public int $tries = 3;

    public function handle(): void
    {
        mailer::send(
            $this->data['email'],
            new recovery_mail(
                $this->data['name'],
                $this->data['email'],
                $this->data['new_password']
            )
        );
    }
}

Despachar um job

send_email_recovery::dispatch([
    'email' => $customer->email,
    'name' => $customer->name,
    'new_password' => $newPassword,
]);

Executar o worker

php mucrm jobs:run

Configure um cron para rodar periodicamente. VejaWorkers eScheduler.


Próximos passos