Saltar al contenido

¿Cómo configurar el correo electrónico de prioridad alta, baja y media usando la cola?

Si encuentras algo que te causa duda puedes dejarlo en la sección de comentarios y te ayudaremos lo mas rápido que podamos.

Toma nota de la Conexiones vs. Colas nota en la documentación de la cola de Laravel, que se aplica a todos los controladores de cola, aparte de SQS, que yo sepa.

Antes de comenzar con las colas de Laravel, es importante comprender la distinción entre “conexiones” y “colas”. En su archivo de configuración config/queue.php, hay una opción de configuración de conexiones. Esta opción define una conexión particular a un servicio de back-end como Amazon SQS, Beanstalk o Redis. Sin embargo, cualquier conexión de cola dada puede tener múltiples “colas” que pueden considerarse como diferentes pilas o montones de trabajos en cola.

Tenga en cuenta que cada ejemplo de configuración de conexión en el archivo de configuración de cola contiene una cola attribute. Esta es la cola predeterminada a la que se enviarán los trabajos cuando se envíen a una conexión determinada. En otras palabras, si envía un trabajo sin definir explícitamente a qué cola debe enviarse, el trabajo se colocará en la cola definida en la cola. attribute de la configuración de la conexión:

En efecto, registrará una conexión de cola en su config/queues.php archivo y el default el parámetro será simplemente la cola a la que se envían los trabajos de forma predeterminada, si no se proporciona otra cola.

La respuesta anterior de Vitaly sería el enfoque correcto para el problema (consolidar en una sola conexión con una cola predeterminada) y luego ajustar sus trabajos para que se envíen a diferentes colas si es necesario. Este es un contexto importante (creo) sobre cómo funciona la configuración de la cola.

'connections' => [

    'Register' => [ //  'database',
        'table'         =>  'tbljobs',
        'queue'         =>  'low',  //  5,
    ],
],

Te sugiero que modifiques tu código de la siguiente manera:

'connections' => [
    'Register' => [
        'driver'        =>  'database',
        'table'         =>  'tbljobs',
        'queue'         =>  'default',
        'retry_after'   =>  5,
    ],
],

Trabajo de alta prioridad: código de controlador para el correo electrónico de registro

$job = (new SendActivationEmail($Data))
        ->onConnection('Register')
        ->onQueue("high");
dispatch($job);

Trabajo de prioridad media – Código de controlador para restablecer contraseña

$job = (new SendResetPasswordEmail($this->tokens->create($user), $user))
        ->onConnection('Register')
        ->onQueue("medium");
dispatch($job);

trabajo de baja prioridad

dispatch((new LowPriorityJob())->onQueue("low"));

Trabajo prioritario predeterminado

dispatch((new DefaultPriorityJob()));

->onConnection(‘Register’) //esta línea es útil si especifica que su conexión predeterminada es Registrarse en .env QUEUE_DRIVER=Registrarse

Ejecute sus trabajos

este comando ejecuta sus trabajos almacenados en la conexión predeterminada. En su caso Regístrese

php artisan queue:work --queue=high,medium,low,default

este comando ejecuta sus trabajos almacenados en la conexión customConnectionName

php artisan queue:work customConnectionName --queue=high,medium,low,default

Debe tener dos colas definidas en su config/queue.php Archivo. Digamos, uno con el nombre de “alto” y el otro “bajo”.

Luego, puede enviarles trabajos según sea necesario de esta manera:

$job = (new SendResetPasswordEmail($this->tokens->create($user), $user))
        ->onConnection('ForgotPassword');
dispatch($job)->onQueue('high'));

Nota: ->onQueue('high')

Finalmente, ejecutarías:
php artisan queue:work --queue=high,low

Esto iniciará un trabajador que procesará todos los trabajos en la cola “alta” antes de pasar a los trabajos en “baja”.

Finalizando este artículo puedes encontrar las crónicas de otros administradores, tú todavía eres capaz insertar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *