如何在Laravel5中配置并使用队列

  介绍

这篇文章给大家介绍如何在Laravel5中配置并使用队列,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Laravel是什么

Laravel是一套简洁,优雅的PHP Web开发框架。它可以让你从面条一样杂乱的代码中解脱出来,它可以帮你构建一个完美的网络应用,而且每行代码都可以简洁,富于表达力。

<强> 1。队列服务配置

在配置文件队列。php的<代码>连接> 复述,> & # 39;复述,,,=祝辞,(   ,& # 39;司机# 39;,,=祝辞,& # 39;复述,# 39;   ,& # 39;连接# 39;,=祝辞,& # 39;默认# 39;   ,& # 39;队列# 39;,,=祝辞,& # 39;默认# 39;   ,& # 39;到期# 39;,,=祝辞,60岁,   ],

在<强>。env 环境配置文件中把默认的队列驱动改成<代码>复述,:

 QUEUE_DRIVER=复述,

为了避免配置缓存的影响,执行以下命令清除并重建配置缓存:

php  artisan 配置:缓存

<强> 2。新建Queueable工作

使用命令:

php  artisan : job  MyJob

新建一个名为<强> MyJob 强的队列处理类,在<代码>应用程序/工作> MyJob。php 强文件。

如何在Laravel5中配置并使用队列

MyJob.php需要实现<代码> 处理方法,用来具体执行队列任务,构造函数可以用来传递需要的参数,<代码> 处理方法支持依赖注入。

这里<代码> 处理方法随便写了一个,就是往一个<代码> 列表类型数据结构中存一个<代码>键值> 和<代码> 价值。

 & lt; php ?
  
  namespace 应用\工作;
  
  use 应用\工作\工作;
  use 照亮\ \ SerializesModels队列;
  use 照亮\ \ InteractsWithQueue队列;
  use 照亮\ \队列\ ShouldQueue合同;
  use 阐明\ \外墙\复述的支持;
  
  class  MyJob  extends  Job  implements  ShouldQueue
  {
  ,use  InteractsWithQueue, SerializesModels;
  
  ,private 美元关键;
  美元,private 价值;/* *
  *,才能Create  a  new  job 实例。
  ,*
  *,才能@return 空白
  ,*/,public  function  __construct(键,美元,美元值)
  ,{
  这→美元才能key =,美元的关键;
  这个美元才能→value =,美元价值;
  ,}/* *
  *,才能Execute 从而工作。
  ,*
  *,才能@return 空白
  ,*/,public  function 处理()
  ,{
  复述才能::hset (& # 39; queue.test& # 39;,, $ this→键,,这→美元值);
  ,}
  
  ,public  function 失败()
  ,{
  转储才能(& # 39;失败# 39;);
  ,}
  }

在控制器中使用<代码> 方派遣法调用队列,将任务放入队列中,控制器中写个方法如<代码>公共功能测试(),<代码>新MyJob> queueId 美元;=,这→美元分派(new  MyJob (& # 39; key_& # 39; .str_random (4), str_random (10)));   dd ($ queueId);

配置并访问路由,可以多访问几次,然后到<代码>复述,中查看,会发现把队列存入了一个队列<代码>::队列:默认的<代码> 列表结构中:

如何在Laravel5中配置并使用队列

其中<代码> 价值内容如下,这是转换成json <代码> 格式的,而实际上是经过序列号的字符串:

{   ,“job":“照亮\ \ \ \ CallQueuedHandler@call"排队,   ,“data": {   “command"才能:,“O: 14: \“App \ \工作\ \ MyJob \“: 6: {s: 19: \“\ u0000App \ \工作\ \ MyJob \ u0000key \“;我:1;销售:21:\“\ u0000App \ \工作\ \ MyJob \ u0000value \“;我:2;销售:10:\“连接\“;N, s: 5: \“队列\“;N, s: 5: \“延迟\“;N, s: 6: \“\ u0000 * \ u0000job \“; N;},   },   ,“id":,“EV2bhqUlx0T8pRCVHw1qT0fkP8AQcyI8"   ,“attempts": 1   }

这里<代码> 数据参数里包含了队列服务工作<代码>

如何在Laravel5中配置并使用队列