laravel队列异步任务环境配置以及需要注意的点

首先你需要一个写好的队列任务至于异步任务怎么写,这里不做展开.

首先你需要把.env里的队列驱动配置改成如下图所示.

2018-01-16 11-16-21屏幕截图.png

注意 一定是数据库驱动 不能是同步的 那样队列就不会被分发了.

然后你需要一张用来保存进入队列待处理任务的表 , laravel为我们准备了这样的命令生成指定的表,你只需要:

php artisan queue:table

//下面这行命令创建一个记录失败队列的错误表,此表用于报错的时候记录出错信息(不是驱动队列的必要条件)

php artisan queue:failed-table

php artisan migrate

这样就创建了一张用于记录异步情况的Jobs 表(此处注意平时创建表的时候尽量不要和laravel表起任何冲突)

拥有表 我就可以在需要分发到队列的任务里如此做

ArticleDelay::dispatch($article->id);

这里的延迟分发文章任务被我设定是立即进入队列处理,

这样 异步任务就被分发进入队列处理

如果需要任务被真正的处理还需要执行php artisan queue:work 这样未必太过麻烦 但是liunx的一个进程监控软件就可以达到自动监控是否有队列任务需要处理 自动会执行处理队列的命令 只需要

sudo apt-get install supervisor

sudo supervisorctl reread

sudo supervisorctl update

sudo supervisorctl start laravel-worker:*

(请注意 执行以上命令你需要在安装后配置一个配置文件)

这样进程监控就启动了 每当需要处理队列任务的时候 会自动去配置的目录下执行php artisan queue:work

配置文件如下:

2018-01-16 11-42-28屏幕截图.png

在envoy自动部署脚本中的seed 加入一行新的命令

23234.png

该命令自动copy 需要的队列配置文件到相应位置

12321.png

该配置文件自动copy了当前项目 config下的worker里的所有配置文件到 队列配置中去.

每次上线时执行run seed 这样就可以发布自身写好的配置文件.

至此整个队列环境配置完毕

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容