队列这个知识相对比较冷门,因为平时的CURD基本用不到这个知识,今天用到了,所以就写个博客记录一下吧。

首先你得清楚要用什么驱动,除了database队列驱动(选择database驱动要php artisan queue:table   php artisan migrate执行这两条命令,具体参考laravel学院文档或官方文档),还有

Amazon SQS: aws/aws-sdk-php ~3.0

Beanstalkd: pda/pheanstalk ~3.0

Redis: predis/predis ~1.0等

系统默认的是我这次选用的是redis,因为要延时60分钟处理。

所以在.env文件中驱动改成redis。

选择好驱动之后,当然要干我们的正事了,撸“队列”代码了。

先执行

会在App\Jobs目录下生成HandleOrder.php文件,类似

这里我已经写过一些代码了。所以稍微有一点差异。我这边是订单的延时处理。在handle()方法里写代码逻辑。

在你写完这里的代码逻辑之后,你一点回想,我怎么才能跑这里的代码呢,别急,这个很简单。

在你想要调用这个队列的地方,加上

或者

这两条代码是等价的。我这里是延时60分钟的,因为 Amazon SQS 队列服务最大延迟 15 分钟。所以,选用了redis。

当然,你可以链式调用 onConnection 和 onQueue 方法 来同时指定任务的连接和队列

然后可以设置最大尝试次数

php artisan queue:work --tries=3

设置最大超时数

php artisan queue:work --timeout=30

运行队列

php artisan queue:work

还有许多其他的操作可以参考官网。

本文属于个人原创,欢迎转载,转载请附链接:http://www.cnblogs.com/x-x-j/p/9041572.html

最新文章

  1. Android之DOM解析XML
  2. BOOST.Asio——扫盲
  3. Shell命令_if
  4. Oracle11G 7个服务说明
  5. Linux系统编程(34)—— socket编程之TCP服务器与客户端的交互
  6. HDU 1934 树状数组 也可以用线段树
  7. LeetCode Algorithm
  8. 三十天学不会TCP,UDP/IP网络编程 - UDP的实践--DHCP
  9. [NOI 2007]货币兑换Cash
  10. /etc/profile文件被改坏导致命令不可用
  11. Vue $emit()不触发方法的原因
  12. 【Dubbo 源码解析】03_Dubbo Protocol&Filter
  13. spring boot(二): spring boot+jdbctemplate+sql server
  14. Java异常及错误
  15. forever 启动nodejs
  16. C++中 0 与 NULL 与 nullptr之间的关系,nullptr_t 的实现
  17. jpeg exif
  18. 为什么我要用 Node.js? 案例逐一介绍
  19. Linux命令-进程查看命令:ps
  20. TopCoder14580: EllysRPS

热门文章

  1. Dynamics CRM2011 通过DeveloperToolkit在VS中部署遇到的问题
  2. Android和iOS中Cocos2D日志为什么会出现skip frames
  3. hibernate关联对象的增删改查------增
  4. 怎样使用projectproperty sheet(.vsprops)来管理工程
  5. 说说struts2中拦截器的请求流程一(模拟大致流程)
  6. AngularJS进阶(十七)在AngularJS应用中实现微信认证授权遇到的坑
  7. OpenGL Shader Key Points (1)
  8. HADOOP中的CRC数据校验文件
  9. Linux - 设置Centos控制台模式的分辨率
  10. ZooKeeper 会话超时