php - example - beanstalkd laravel
Ejecutando beanstalkd worker en un servidor remoto (1)
Mi configuración de pila consiste en lo siguiente
Machine1 - Servidor principal (Running laravel)
Machine2 - Servidor MySql para la base de código laravel
Machine3 - Trabajador de Beanstalkd
Configuré Supervisord en Machine1 y agregué el siguiente oyente de cola
[program:queue1]
command=php artisan queue:listen --queue=queue1 --tries=2
...
Mi archivo de configuración de cola de laravel (app / config / queue.php) lee lo siguiente
''beanstalkd'' => array(
''driver'' => ''beanstalkd'',
''host'' => ''--- Machine3 IP ---'',
''queue'' => ''queue1'',
''ttr'' => 60,
),
Y he instalado beanstalkd en Machine3 junto con la consola Beanstalk y puedo ver que mis tareas se transfieren a la cola y se ejecutan con éxito. Sin embargo, no estoy seguro si Machine3 realmente los está ejecutando, y la razón de mi sospecha es el uso de CPU alta en el servidor principal en comparación con los picos en el uso de CPU en Machine3.
Apagué por completo mi Servidor Beanstalkd para comprobar si la cola todavía procesa y el resultado fue un error informado por laravel que indicaba que no se podía conectar al servidor beanstalkd.
Leí en alguna parte que necesitas tener tu código base de Laravel en el servidor beanstalkd ( Machine3 ) también, ¿realmente era el camino a seguir?
Cualquiera que sea la máquina que ejecute en queue:listen
on es la máquina que realiza el procesamiento real de la cola.
Por el momento, todo lo que hace es almacenar las colas en machine3 , pero procesarlas en machine1 .
Por lo tanto, debe tener machine3 ejecutar la queue:listen
comando si desea procesar la cola.