php实现队列的方法:首先新建一个文件“artisan.php”;然后通过“php artisan”执行队列;最后进入redis客户端输入命令“lpush listname a b c d e f g”即可。

推荐:《PHP视频教程》

PHP实现队列的原理(laravel)

用过laravel框架的童鞋都知道其自带队列功能,之前我很费解,PHP只是一个脚本,有超时机制。为什么能不停的去执行队列呢?

我们新建一个文件queue.php<?php

while(true){

echo 1;

sleep(1);

}

然后中 命令行里面 执行 php queue.php

你会发现每秒钟输出一个1;等了很久,咦,很神奇,为什么php没有超时呢?

对,就是不会超时,Why?

答:实际上PHP执行脚本是不会超时的,我们在网页中看到的诸如504等超时,是由Apache,Nginx,PHP配置文件设置的超时时间决定的,因为PHP命令行执行文件没有使用PHP配置文件,所以默认是不超时的。ps -ef | grep php

会发现有一个 php queue进程

php超时的疑惑我们解决了

再来看一下队列的原理

新建一个文件 artisan.php<?php

$redis = new Redis();

$redis->connect('127.0.0.1',6379);

while(1){

$res = $redis->lpop('listname');

if($res){echo $res."\r\n";}

sleep(1);

}

然后php artisan 执行队列

我们来新建一个窗口,进入redis客户端输入以下命令lpush listname a b c d e f g

会发现php artisan这个队列会不断的把redis里我刚刚push进去的值打出来

其实laravel的队列就是这个原理,只不过,它不仅支持redis作为载体,还可以使用其他更多的数据库

有人就要问了,我这php artisan.php启动了,如果我把窗口关了不就没用了吗?不不不,Linux 还是可以在后台运行的

只要在命令后面加个 &,或者nohup ... $ 放到后台运行即可,当然也可以加入crontab定时任务里去执行。nohup php artisan.php &

php怎么做请求队列,php 队列的实现方法相关推荐

  1. RabbitMQ,Springboot整合RabbitMQ实现 消息可靠性投递,Consumer ACK,TTL,死信队列,使用TTL+死信队列=延迟队列

    搭建SpringBoot项目,用于演示 springboot版本 <!-- spring boot --><dependency><groupId>org.spri ...

  2. 环形队列出队的元素怎么输出出来_队列:队列在线程池等有限资源池中的应用...

    我们知道,CPU资源是有限的,任务的处理速度与线程个数并不是线性正相关的.相反,过多的线程反而会导致CPU频繁切换,处理性能下降.所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事先设 ...

  3. Python多线程结合队列下载百度音乐的方法

    本文实例讲述了Python多线程结合队列下载百度音乐的方法.分享给大家供大家参考.具体如下: 一直想做个下载音乐的脚本,后来决定就拿百度音乐开刀,经过多次分析,终于制作了一个下载百度音乐的脚本,目前只 ...

  4. java redis队列_redis队列实现高并发怎么用?Java如何使用redis队列解决高并发?

    小伙伴们大家好,不知道你们有没有在Java开发中遇到redis队列高并发,这个问题让你很头疼,今天小编就来讲解一下在Java中遇到redis队列高并发了,到底该怎么办. 高并发的业务场景: 我们做商品 ...

  5. 09 | 队列:队列在线程池等有限资源池中的应用

    队列定义 先进者先出,这就是典型的"队列".队列跟栈一样,也是一种操作受限的线性表数据结构. 顺序队列和链式队列 顺序队列:用数组实现的队列 // 用数组实现的队列 public ...

  6. SAP STMS导入队列显示队列末尾

    显示在队列末尾的请求只能一个一个的传输,不能选择多个传输.解决办法就是选中'队列末尾'区域最上面的请求,然后队列->移动末尾标记 点击确认之后,该请求下所有的请求将会回到队列前,变成正常可多选模 ...

  7. 链式队列,队列篇(链式队列的出队入队操作)

    数据结构,队列篇(链式队列) 前言: 上一篇博主简单讲解了顺序队列和循环队列,今天讲解队列最后一篇链式队,链式队在数据结构中用到比较多,用来做一些排队的算法,还有链式队列是也是和链式栈一样采用链表的方 ...

  8. 简述顺序表、链表、栈和队列以及队列实现栈、栈实现队列

    简述顺序表.链表.栈和队列以及队列实现栈.栈实现队列 顺序表Vector 原理 使用方法 优点和缺点 链表List 原理 使用方法 优点和缺点 栈Stack 定义和特点 使用方法 队列 定义和特点 使 ...

  9. 数据结构 队列(顺序队列 循环队列 链队列)

    目录 一.引入 二.队列的定义 三.队列的抽象数据类型 四.队列的存储方式 五.队列的顺序存储(不太常用 后面5.4会给出原因) 5.1顺序存储队列的基本知识点 5.2队列的顺序存储描述 5.3顺序存 ...

  10. 十、【栈和队列】队列

    队列 Queue 队列和栈一样,也属于受限线性表. 1 队列的基本概念 1.1 队列的定义 队列是只允许在表尾进行插入,表头进行删除的线性表.插入操作又称为入队,删除操作又称为出队. 队列的逻辑关系就 ...

最新文章

  1. 600度近视眼恢复方法_近视眼了怎么办?试试这几种方法,或许能奏效
  2. mybatis foreach 错误_MyBatis高级结果映射之一对一映射
  3. 《原神》——开放世界二次元游戏的一些见解和建议
  4. pm_bout_1/2_on_subway
  5. [MEGA DEAL]完整的Java编程训练营(94%)
  6. 工作107:vue调用视频接口
  7. C语言struct关键字详解—结构体
  8. linux emacs命令,Linux Bash Shell 终端 Terminal Emacs 模式 常用 快捷键 命令
  9. Python检验某个字符(串)是否属于另一个字符串
  10. SQl SGA 整理
  11. STK MATLAB联合仿真(一)STK与MATLAB的连接(COM与Connector)
  12. 机器学习(四)神经网络
  13. 如何用计算机记英语词汇,计算机英语词汇学习方法
  14. 18讲项目实战签证详细页
  15. CE修改器学习历程之下载、安装和汉化
  16. 网上大多数原理总结,UDP打洞原理
  17. FMI飞马网IT书籍赠送:参加获奖就送智能技术/软件开发/Web技术/数据科学计算机科学/网络技术/IT文化与互联网
  18. 小沙弥密码箱V1.0
  19. Python3 计算空气质量指数AQI
  20. C语言编程>第六周 ⑥ 输入一串字符,统计大大写字母的个数,并强调统计必须用函数。

热门文章

  1. 需求分析文档——适用范围:产品规划经理进行需求分析
  2. 关于电脑开机报88880005的解决方法
  3. 如何做提升工作效率能力的PPT课件?
  4. Docker部署web项目
  5. PDF各种编辑方法(页码重排、解密、导入书签、导入注释、合并)
  6. 【CPU线程和进程绑核】
  7. opencv快速入门—键盘响应操作
  8. 元宇宙:6层框架和3个核心底层技术
  9. 挣值管理EVM详细解释及应用,实例讲解
  10. 字符串压缩、解压算法