我们新建一个文件queue.php

<?php
while(true){
echo 1;
sleep(1);
}

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

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

对,就是不会超时,Why?

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

接下来我们演示redis+php实现队列

新建一个文件 artisan.php

<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->auth('123456');//因为此处我设置了redis密码
while(1){
$res = $redis->lpop('listname');
if($res){echo $res."\r\n";}
sleep(1);
}

然后php artisan.php 执行队列

我们来新建一个窗口,进入redis客户端输入以下命令【不会redis的可以在我的博客中找相关资料】

lpush listname a b c d e f g

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

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


有人就要问了,我这php artisa.php启动了,如果我把窗口关了不就没用了吗,

不不不,Linux 还是可以在后台运行的

只要在命令后面加个 &

php artisan &

就可以啦

最新文章

  1. Maven常用的命令
  2. PYTHON 文件操作
  3. js中object类型模拟java中的map
  4. Java for LeetCode 033 Search in Rotated Sorted Array
  5. 1、C语言中的函数指针
  6. wireshark删除filters记录
  7. Android四个多线程分析:MessageQueue实现
  8. Android多线程.断点续传下载
  9. HashMap 和 Hashtable 的 6 个区别
  10. (二分查找 拓展) leetcode278. First Bad Version
  11. [MySQL] timestamp和datetime的区别
  12. python字典与集合操作
  13. js字符串转数字(小数),数字转字符串
  14. 修改mongodb(带仲裁节点的副本集)各机器端口
  15. Excel--数据对比方法
  16. 【做题】BZOJ2534 L-gap字符串——调和级数
  17. 使用 node 创建代码服务器
  18. 学习mybatis-3 step by step 篇二
  19. HDFS问题集(一),使用命令报错:com.google.protobuf.ServiceException:java.lang.OutOfMemoryError:java heap space
  20. JavaWeb get请求乱码处理

热门文章

  1. h264封包介绍
  2. 洛谷 P2399 non hates math
  3. LeetCode之RemoveElement
  4. POJ 3080 Blue Jeans (后缀数组)
  5. 【cl】控制台执行Java程序
  6. Codeforces Round #200 (Div. 2)D. Alternating Current (堆栈)
  7. BEGINNING SHAREPOINT&amp;#174; 2013 DEVELOPMENT 第8章节--配送SP2013Apps 总结
  8. SQL SERVER读书笔记:JOIN
  9. [jzoj 6073] 河 解题报告 (DP)
  10. WEBGL学习笔记(七):实践练手1-飞行类小游戏之游戏控制