laravel队列

三种情况:

  • queue:work 默认只执行一次队列请求, 当请求执行完成后就终止;
  • queue:listen 监听队列请求, 只要运行着, 就能一直接受请求, 除非手动终止;
  • queue:work --daemonlisten 一样, 只要运行着, 就能一直接受请求, 不一样的地方是在这个运行模式下, 当新的请求到来的时候, 不重新加载整个框架, 而是直接 fire 动作.

能看出来, queue:work --daemon 是最高级的, 一般推荐使用这个来处理队列监听.

注意: 使用 queue:work --daemon , 当更新代码的时候, 需要停止, 然后重新启动, 这样才能把修改的代码应用上.

至于存在的必要

  • 首先, --daemon 是在 Laravel 4.2 以后才加入的.
  • 其次, 从上面的分析来看, queue:listenqueue:work --daemon 还是有区别的.
时间: 2024-10-28 11:04:40

laravel队列的相关文章

使用Supervisor来管理你的Laravel队列

Laravel官网教程中,并没有提到用它来写CLI应用,即守护进程或者可执行脚本.但是它却提供了更加便捷的队列(Queue)功能. Laravel队列 我们在开发应用过程中难免会遇到处理耗时任务的需求,这些任务如果直接在用户的请求中处理,必然会导致页面显示被阻塞.虽然利用fastcgi的一些特性可以先输出页面,后台任务继续执行,但是这样远远不如将任务交给异步队列来处理方便. 配置和启动 Laravel队列功能为我们提供了一个便捷的方式去处理这些异步任务,配置一个队列只需要以下几步: 配置app/

laravel队列-让守护进程处理耗时任务

待解决的问题 最近在做一个服务器集群管理的web项目,需要处理一些极其耗时的操作,比如磁盘格式化分区.对于这个需求,最开始的想法是,为了让节点上的rpc(远程过程调用) service端尽可能简单(简单到只需要popen执行一条指令即可,有时间我再专门写一篇博客讲讲这个项目的rpc是如何实现的),我们选择了让web端直接等待处理结果,那么问题来了,如何保证用户不必等待,又能保证任务准确的执行呢? 简单的rpc结构如下图 以往在处理一些稍微耗时的操作,可以通过优化代码结构,优化数据库操作次数,起一

Laravel学习三:laravel队列使用教程

概述 队列概念:略,不知道的自行解决.(PS:此处laravel version:5.1) 在app服务端开发中,常常会遇到此种情况: 某一个大的任务中,可以分割为1,2,3,4个小任务,其中2的完成依赖1,4的完成依赖2.那么1.2.4可以理解为一个事务,必须依次执行,否则任务无法完成.但是任务3,与1.2.4没有关系,可以单独完成,谁先谁后也没有影响.具体说以下任务就跟三是一个属性:消息推送,邮件发送等等. 消息队列的理解 对于这块,是属于典型的生产者/消费者模型.一个生产者程序制造任务,放

laravel 队列重启

我在job中写了邮件发送 ,线下环境测试是无问题的 ,现在放到线上出现了问题. 问题描述: 部分时候邮件功能可用,部分时间邮件功能不可用. 邮件功能不可用的时候,job发送失败,失败原因是无发送人,打印log发现获取不到config/mail.php的正确配置,所获取的配置都是系统的默认配置. 请问有人是否遇到了类似问题,或者我的哪里配置有错误的,还是谁能帮忙解释下job的加载机制,谢谢. 本文章首发在 Laravel China 社区 队列重启,就好了 php artisan queue:re

laravel 队列使用(发邮件、短信等)

1.配置 队列配置文件存放在config/queue.php.在该文件中你将会找到框架自带的每一个队列驱动的连接配置,包括数据库.Beanstalkd. IronMQ. Amazon SQS. Redis以及同步(本地使用)驱动.其中还包含了一个null队列驱动以拒绝队列任务. 咱们以database为例:env文件配置  QUEUE_DRIVER=database 2.创建数据库(jobs.failed_jobs),如果想自定义表名,生成后改一下表名,然后修改配置文件queue.php 中的j

laravel 消息队列浅析

laravel支持消息队列,发短信,发送消息通知 用起来很方便,延时队列还可以用来方式晚上发短信骚扰用户.但是使用的时候遇到了不少问题,比如laravel队列的重试功能,真的是让人很慌,打款或者消息推送,哪个重复了都会造成很大的影响.接下来就列举几个我遇到过的问题,总结一下,防止再次踩坑. 第一点: 使用worker监听,出队的代码如果又修改,那么上线必须重启监听 第二点:防止异常重试,异常重试次数可以通过--tries参数来设置,如果一个业务场景是,少发几条没关系,但是一定不能多发,那么可以不

[原创]Laravel 基于redis队列的解析

目录 参考链接 本文环境 为什么使用队列 Laravel 中的队列 分发任务 任务队列 Worker Last-Modified: 2019年5月10日11:44:18 参考链接 使用 Laravel Queue 不得不明白的知识 Laravel 队列文档 本文环境 Laravel 5.5 队列 Redis 为什么使用队列 使用队列的目的一般是: 异步执行 出错重试 解释一下: 异步执行: 部分代码执行很耗时, 为了提高响应速度及避免占用过多连接资源, 可以将这部分代码放到队列中异步执行. Eg

Laravel5.2队列驱动expire参数设置带来的重复执行问题 数据库驱动

  'connections' => [     ....         'database' => [             'driver' => 'database',             'table' => 'jobs',             'queue' => 'default',             'expire' => 60,         ],         'redis' => [             'driver

队列机制+radis

今天看laravel队列文档,发现原来有好几个实现队列的方式. 队列,其实说到底,就是为了实现异步. 可以避免高峰期对服务器的压力.很多中奖和发货流程分开,就是用队列. Amazon SQS: aws/aws-sdk-php Beanstalkd: pda/pheanstalk ~3.0 IronMQ: iron-io/iron_mq ~1.5 Redis: predis/predis ~1.0 相关链接: http://www.php1.cn/article/9865.html  //对于队列