• laravel5.5 延时队列的使用


    队列这个知识相对比较冷门,因为平时的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。

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

    先执行

    会在AppJobs目录下生成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

  • 相关阅读:
    How Does Batch Normalization Help Optimization?【阅读笔记】
    连接局域网内其他机器虚拟机中的Linux服务器
    阿里云磁盘扩容
    apscheduler模块
    linux挖矿病毒
    jenkins-时间参数
    k8s-学习笔记11-容器探针
    k8s-学习笔记10-watch机制
    xfce4设置屏保/锁屏时间
    高清动图方案
  • 原文地址:https://www.cnblogs.com/x-x-j/p/9041572.html
Copyright © 2020-2023  润新知