php artisan queue:work --verbose --tries=3 --timeout=90 code example

Example 1: laravel queue:work not working

Execute Laravel queues by queue names on coomand line interface-> 
// I was using running command
  'php artisan queue:work'    
// which was not running my queued jobs in jobs table. 
// Then i relaized, it was only working for jobs with queue column value = 'default'
// and  i had given names like sendemail, inboxemail etc. 
  
// So when i changed this other value to  'default'  in queue column in jobs table,
// this job ran instantly as i have opended cli and  php artisan queue:work 
// command was active.  
  
//So if you want to run only a specific queue by queue name, run command ->   
  php artisan queue:listen --queue=sendemail 
//    or 
  php artisan queue:listen --queue=inboxemail

Example 2: laravel queue:work freezes

Execute Laravel queues by queue names on command line interface-> 
// I was using running command
  'php artisan queue:work'    
// which was not running my queued jobs in jobs table. 
// Then i relaized, it was only working for jobs with queue column value = 'default'
// and  i had given names like sendemail, inboxemail etc. to queues while dispatching jobs (->onQueue('sendemail'))
  
// So when i changed this other value to  'default'  in queue column in jobs table,
// this job ran instantly as i have opended cli and  php artisan queue:work 
// command was active.  
  
//So if you want to run only a specific queue by queue name, run command ->
  php artisan queue:work --queue=sendemail 
//    or
  php artisan queue:listen --queue=sendemail 
//here, sendemail is the name of queue i have given while using  ->onQueue('sendemail')
//while dispatching a job    
//you can google difference between  queue:work and queue:listen, however queue:work is good to use    

//Now, if you want to automate these queues in background, so that you dont 
//have to get back to cli every time you want to execute these queues, use
//supervisor    
//supervisor commands -> use these commands in php root folder, not inside laravel project
sudo apt-get install supervisor  or  sudo yum install supervisor
//then you need to make changes to installed   /etc/supervisord.conf  file where
//you find below code starting with [program:laravel-worker] or paste below code if 
//it is not there    
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path to your laravel project/artisan queue:work database --tries=2 --queue=default,otherqueuename,anyotherqueuename
autostart=true
autorestart=true
;user=forge
numprocs=1
redirect_stderr=true
stdout_logfile=/path to your laravel project/worker.log
//worker.log file will get updated with all the queues that supervisor executes  
  
//commands to start , stop supervisor, so you can check jobs queues in database
//in jobs table if you are actually having jobs to be processed by supervisor  
sudo service supervisord restart  
sudo service supervisord stop

Tags:

Php Example