php 队列创建,php 队列的实现方法
php实现队列的方法:首先新建一个文件“artisan.php”;然后通过“php artisan”执行队列;最后进入redis客户端输入命令“lpush listname a b c d e f g”即可。
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 队列的实现方法相关推荐
- windchill创建定时队列执行
1.指定包下创建队列方法类--CreateQueueForTest: 2.定义队列执行业务类--TestCreateQueue,编写具体业务方法: 3.启动windchill服务,在windchill ...
- python2 队列的使用_python双端队列原理、实现与使用方法分析
本文实例讲述了python双端队列原理.实现与使用方法.分享给大家供大家参考,具体如下: 双端队列 双端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构 ...
- 消息队列mq的原理及实现方法
消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行前不需要等待 ...
- java阻塞队列作用_简单理解阻塞队列(BlockingQueue)中的take/put方法以及Condition存在的作用...
简单理解阻塞队列(BlockingQueue)中的take/put方法以及Condition存在的作用 Condition:可以理解成一把锁的一个钥匙,它既可以解锁(通知放行),又可以加锁(阻塞) n ...
- 队列实现栈的3种方法,全都击败了100%的用户!
作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 本文已收录至 Github<小白学算法>系列:https://gith ...
- RTX5 | 消息队列01 - 创建消息队列
文章目录 一.前言 二.实验的目的 三.API 3.1.osMessageQueueId_t 3.2.osMessageQueueAttr_t 3.3.osMessageQueueNew 四.代码 4 ...
- 队列的基础知识及实现方法
队列 在网上又看到关于队列的知识点,有很多,但都比较琐碎,有的还有些错误,为方便自己理解,特整理出一篇,顺便也加强记忆:当然,也附上我参考的博客地址: http://www.cnblogs.com/k ...
- RabbitMQ消息队列创建
操作环境 centos 7.9 RabbitMQ 3.8.23 Erlang 24.1.2 局域网(内网) 本文章是通过RabbitMQ图形管理界面,进行消息创建与队列绑定 首先在RabbitMQ安装 ...
- RabbitMQ创建死信队列
向Queue_TTL队列里发送消息,10秒后当消息没有被正常消费掉则消息过期被转发至 Queue_DLX死信队列 const amqp = require('amqplib');async funct ...
- 数据结构之——队列与循环队列
数据结构学习之--队列与循环队列 什么是队列(Queue) 队列基于动态数组的实现及时间复杂度分析 优化队列 循环队列(LoopQueue) 什么是队列(Queue) 队列(Queue)同栈(stac ...
最新文章
- 1人15篇入选?华人论文知多少?深度分析ICCV2019论文录取背后的那些事儿!
- “SQL Server does not allow remote connections”错误的解决
- 文件系统:使用 yum 安装软件包
- MySQL还是h5储存数据_h5中五大存储方式
- 步进电机只能一个方向转?
- Java中的委托模式
- 人员优化浪潮下,苟住要紧。
- python 函数重载_python中有函数重载吗
- 编译OpenJDK12:可以用VS2010到VS2017
- 家庭宽带光猫改桥接模式教程-淇云博客
- 简析Apache Ignite
- 使用腾讯云COS对象存储(详细流程)
- 我的奋斗,不需要任何理由
- 论文解读:医学影像中的注意力机制
- 贝尔曼最优方程(Bellman Optimality Equation)
- Debezium系列之:使用Debezium接入PostgreSQL数据库数据到Kafka集群的详细技术文档
- 利用python进行prosper贷款数据EDA分析(一)
- 模拟信号拉线位移编码器是如何来校准的?
- 我的计算机生涯--开始
- 剑网3选择人物后进入游戏就显示服务器断开连接,剑网3怎么进入游戏_剑网3进入游戏的问题_牛游戏网...