2015-12-09 19 views
8

Ho una coda che ho impostato in Laravel 5 per eliminare aziende e record associati. Ogni volta che succede questo, si verifica molto lavoro sul back-end, quindi le code sono la mia migliore opzione.Cosa impedirebbe l'elaborazione dei lavori in coda? [PHP/Laravel 5]

Ho impostato il file config/queue.php insieme al file .env in modo da utilizzare il driver database. Sto usando il metodo Queue::pushOn per inviare i lavori su una coda chiamata company_deletions. Ex.

Queue::pushOn('company_deletions', new CompanyDelete($id)); 

Dove CompanyDelete è un comando creato con php artisan command:make CompanyDelete --queued

ho cercato di ottenere il mio coda per elaborare utilizzando i seguenti comandi:

php artisan queue:work 
php artisan queue:work company_deletions 
php artisan queue:listen 
php artisan queue:listen company_deletions 
php artisan queue:work database 
php artisan queue:listen database 

A volte, quando guardando l'output dei comandi di cui sopra , Ho il seguente errore:

[InvalidArgumentException] 
No connector for [] 

Anche se non ricevo un errore, non riesco a farlo elaborare effettivamente i lavori per qualche motivo. Quando guardo nella mia tabella jobs, posso vedere il lavoro in coda, tuttavia la colonna attempts mostra 0, reserved mostra 0 e reserved_at è nullo. Mi mancano alcuni passaggi? Ho esaminato più volte la documentazione e non riesco, per la vita di me, a capire cosa c'è che non va. Neanche io vedo nulla nei log degli errori di laravel. Cosa impedirebbe l'elaborazione di questi lavori una volta nel database jobs? Qualsiasi aiuto è apprezzato.

+4

si dovrebbe esporre il 'config/queue.php' – magnetik

+0

Scopri i log, vedere se si dispone di eventuali errori o così ... – musicvicious

+0

Se laravel non riesce a elaborare può accedere e potrebbe aiutarti a eseguire il debug. Altro -https: //laravel.com/docs/5.0/queues#failed-jobs – user269867

risposta

1

mi imbatto in un problema di smiliar perché io non aggiungere i lavori nella coda di default ..

 $job = (new EmailJob(
      $this->a, 
      $this->b, 
      $this->c, 
      $this->d, 
      $e 
     ))->onQueue('emails'); 

poi devo ascoltare la coda di specifica:

php artisan queue:listen --queue=emails 

nel tuo caso sarebbe

php artisan queue:listen --queue=company_deletions