Despachando Jobs
v4Envie jobs para a fila com dispatch(). Classes emapp/shared/jobs/, namespace MUCRM\shared\jobs, estendendo MUCRM\engine\queue\job.
dispatch()
send_email_recovery::dispatch([
'email' => 'cliente@email.com',
'name' => 'Maria',
'new_password' => 'abc123',
]);Dados ficam em $this->data dentro do job.
Delay
send_email_recovery::dispatch([
'email' => 'cliente@email.com',
], 60);Segundo parâmetro = segundos de espera.
No handler
namespace MUCRM\modules\account\handlers;
use MUCRM\shared\jobs\send_email_recovery;
class recovery_handler extends handler
{
public function send()
{
send_email_recovery::dispatch([
'email' => $this->req->input('email'),
'name' => auth()->name,
'new_password' => str::random(12),
]);
}
}Job completo
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 function handle(): void
{
mailer::send(
$this->data['email'],
new recovery_mail(
$this->data['name'],
$this->data['email'],
$this->data['new_password']
)
);
}
}php mucrm jobs:run