Site

Despachando Jobs

v4

Envie 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