laravel 的队列服务对各种不同的后台队列服务提供了统一的 API。队列允许你延迟执行消耗时间的任务,比如发送一封邮件。这样可以有效的降低请求响应的时间。
队列的配置文件被存储在 config/queue.php 中。在这个文件中你会发现框架所支持的队列驱动的配置连接示例。这些驱动包括:数据库,Beanstalkd,Amazon SQS,Redis,和一个同步(本地使用)的驱动。
还有一个名为 null 的驱动表明不使用队列任务
- 修改.env
CACHE_DRIVER=file
// 这个值设为redis,且redis服务未启动,在执行php artisan queue:work会出现连接redis失败的错误,因此当QUEUE_DRIVER不为redis时,CACHE_DRIVER也不能为redis。
QUEUE_DRIVER=database
- 创建job表
php artisan queue:table
php artisan migrate
- 定义任务调度cron命令
- 生成job文件(app/Jobs下面)
php artisan make:job SendCampaginEmail
定时执行推送给job队列文件SendCampaginEmail处理
SendCampaginEmail文件
。。。。。。
推给队列文件方法
$job = (new SendCampaignEmail($campaigninfo))->delay(1);
dispatch($job);
执行队列文件
php artisan queue:work
或是
php artisan queue:listen
两者区别查看文档吧
具体任务失败或是处理方法守护进程看文档:
http://laravelacademy.org/post/6125.html
死亡,美妙的长眠,值得高歌一曲,啦~~~