说明队列配置文件存放在config/queue.php中。可以在此文件中找到每个队列驱动程序的配置,包括数据库、Beanstalkd、AmazonSQS、Redis和同步(本机使用)驱动程序。它还包括一个用于放弃队列的任务的空队列驱动程序。使用databsedriver将.env中的配置项QUEUE_DRIVER修改为database。首先创建一个数据表来存放任务,phpartisanqueue:tablephpartisanmigrate创建一个job文件,在Controller层的phpartisanmake:jobSendReminderEmail$this->dispatch(newSendRemindEmail())生产队列,所以新增队列任务单次消费队列记录在数据库jobsphpartisanqueue:work依次消费所有队列phpartisanqueue:listen使用beanstalkd驱动安装beanstalkd:sudoapt-getinstallbeanstalkdservicebeanstalkdstart/usr/bin/beanstalkd-l127.0.0.1-p11300安装其依赖的扩展包composerrequirepda/pheanstalk仍然修改.获取消费数据,命令同上。安装beanstalk控制台。如果使用composer,可以执行composercreate-projectptrofimov/beanstalk_console-sdev。如果使用laradock,可以直接运行docker-composerup-dbeanstalk-console,使用supervisor驱动安装supervisor:sudoapt-getinstallsupervisor。去官网下载最新的稳定版,编辑新的配置文件cd/etc/supervisor/conf.d/demo.conf,配置项模板如下重新读取新的配置文件执行sudosupervisorctlrereadsudosupervisorctlupdate启动对应的配置项worker执行sudosupervisorctlstartdemo:*[program:demo]process_name=%(program_name)s_%(process_num)02dcommand=php/your-project-path/artisanqueue:listen--tries=3autostart=trueautorestart=truenumprocs=8redirect_stderr=truestdout_logfile=/your-project-path/storage/logs/worker.log写在最后ScriptMakerDayDayUp!
