Fila de Jobs
v4Jobs 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 filaOnde ficam os jobs
app/shared/jobs/send_email_recovery.php
// Namespace: MUCRM\shared\jobsJobs 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:runConfigure um cron para rodar periodicamente. VejaWorkers eScheduler.