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 队列的实现方法相关推荐
- php如何删除数据库中的数据库文件夹,学习猿地-php数据库如何删除数据
php数据库删除数据的方法:首先创建一个代码文件:然后通过PHP函数"mysql_query"执行"SQL DELETE"语句从MySQL表中删除数据即可. 本 ...
- oracle中rac是什么意思,学习猿地-oracle rac是什么?
RAC全称real application clusters,译为"实时应用集群", 是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计 ...
- java栈和队列实现删除,数据结构学习--Java栈和队列
栈:先进后出 队列:先进先出 都是数组存放,但是删除的时候不是删除了数组中的数据,而是使用增加游标标识的方式实现删除,"游标标识"加加或者减减完成删除操作,查看的时候,也不是直接查 ...
- Linux系统中消息队列,共享内存、信号和线程的基本操作使用方法
Linux系统中消息队列,共享内存.信号和线程高级操作 第十一章 消息队列 10.1消息队列定义 10.2 消息队列特点 10.3 key值 10.4 创建消息队列 10.4.1 发送消息 10.4. ...
- C#中的扩展方法学习总结
版权声明:本文由秦元培创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,转载请注明作者及出处,本文作者为秦元培,本文标题为C#中的扩展方法学习总结,本文 ...
- Java多线程学习二十四:阻塞队列包含哪些常用的方法?add、offer、put 等方法的区别?
阻塞队列包含哪些常用的方法,以及 add,offer,put 等方法的区别. 在阻塞队列中有很多方法,而且它们都非常相似,所以非常有必要对这些类似的方法进行辨析,所以本课时会用分类的方式,和你一起,把 ...
- KDD2021 | 推荐系统中利用深度哈希方法学习类别特征表示
本文分享一篇谷歌团队发表在KDD'21的推荐系统文章:不使用嵌入表的方式获得类别特征的表征用于推荐系统[1]. 本文结构组织如下: 背景 已有的类别特征嵌入方法 One-hot Full Embedd ...
- java console不见了_解决eclipse中console控制选项不见了的方法
eclipse是一款用于编译java语言的程序,利用这款软件我们可以制作很多有趣的小程序,也可以制作一些大型的软件项目.在实际的操作中,eclipse是由多个工具栏组成的,其中console就是用于查 ...
- python代码:基于强化学习的智能电网的动态定价方法 摘要:提出了一种考虑服务提供商(SP)利润和用户(CUs)成本的分级电力市场中能量管理的动态定价DR算法
python代码:基于强化学习的智能电网的动态定价方法 摘要:提出了一种考虑服务提供商(SP)利润和用户(CUs)成本的分级电力市场中能量管理的动态定价DR算法. 使用强化学习(RL)描述分层决策框架 ...
最新文章
- 3维线程格 gpu_基于CUDA的GPU并行优化重力三维反演
- 【IDAX投研中心】BCH诞生一周年 “青出于蓝而胜于蓝”吗?
- vuex刷新页面数据丢失怎么解决_vuex状态机浅谈
- 一二三维矩阵的拼接问题
- HashMap 源码解析(JDK1.8)
- nginx可以负载均衡多个tomcat,nginx主机挂了怎么办?Keepalived
- 大前端的自动化工厂(1)——Yeoman
- OpenSCAD设计的3D打印智能路由器盒子(V1.1)
- 数字信号处理实验matlab版答案,数字信号处理习题答案及matlab实验详解.pdf
- 玩转木浪云数据管理免费版使用篇之内容搜索与颗粒度恢复
- Elasticsearch(待学习)
- Ambisonics声音格式及麦克
- 智能快递柜在小区的应用
- V4L2框架-视频流的停止(VIDIOC_STREAMOFF)
- package titlesec error: nested titles
- 6000字长文,终于将数据中台架构体系讲明白了
- magic-api的使用体验
- [蓝桥杯][2018年第九届真题]日志统计(尺取法)
- 如何给PDF解密?建议收藏这些方法
- 如何回答:你对运维(大数据)工作了解多少?被录用后打算如何展开工作?