Esecuzione di worker beanstalkd su un server remoto

Il mio set di stack è composto da quanto segue

Machine1 – Main Server (Running laravel)
Machine2 – MySql Server per il codebase di laravel
Machine3 – Lavoratore di Beanstalkd

Ho installato Supervisord su Machine1 e aggiunto il seguente listener di code

[program:queue1] command=php artisan queue:listen --queue=queue1 --tries=2 ... 

Il mio file di configuration della coda laravel (app / config / queue.php) legge quanto segue

 'beanstalkd' => arrays( 'driver' => 'beanstalkd', 'host' => '--- Machine3 IP ---', 'queue' => 'queue1', 'ttr' => 60, ), 

E ho installato beanstalkd su Machine3 insieme alla console Beanstalk e posso vedere i miei compiti essere spinti in coda e in esecuzione con successo. Tuttavia non sono sicuro che Machine3 li stia effettivamente eseguendo, e il motivo del mio sospetto è l'elevato utilizzo della CPU sul server principale rispetto ai picchi di utilizzo della CPU su Machine3

Spengo completamente il mio server beanstalkd per verificare se la coda continua a funzionare e il risultato è stato un errore segnalato da laravel che indica che non è stato ansible connettersi al server beanstalkd.

Ho letto da qualche parte che è necessario avere il tuo codice base laravel sul server beanstalkd ( Machine3 ), è davvero questa la strada da percorrere?

Qualsiasi macchina venga eseguita in queue:listen on è la macchina che esegue l'elaborazione effettiva della coda.

Al momento tutto quello che stai facendo è memorizzare le code su machine3 , ma elaborarle su machine1 .

Quindi è necessario che machine3 esegua la queue:listen command se vuoi che elabori la coda.