每隔一段时间执行php_用php脚本,你如何定时更新商品列表
电商项目中为了提高抗并发能力,需要对商品列表做缓存,以下是更新缓存用的脚本:
//PRODUCTION_为缓存商品列表的临时key
//PRODUCTION为缓存商品列表key
$con = mysqli_connect($db_config['host'],$db_config['user'],$db_config['passwd'],$db_config['database']);
$redis = new Redis();
$redis->connect($redis_config['host']);
$redis->del(PRODUCTION_);$sql = "select * from production ORDER BY created_at";
$result = mysqli_query($con,$sql);
$artimages = [];
while($row = mysqli_fetch_assoc($result)){$redis->lPush(PRODUCTION_,json_encode($row));
}
/*
*之所以不直接更新到商品列表是因为当商品列表数据量比较大的时候,脚本执行的时间长,
*在del PRODUCTION之后 lPush PRODUCTION之前 用户访问网站的时候会出现读取不到
*商品列表的情况。
*先存入临时列表,再最后rename为实际被查询的key
*/
$redis->rename(PRODUCTION_,PRODUCTION);
上诉脚本只是一个demo,实际应用时需要加锁,否则在脚本未执行完,又到了crontab下一次自动执行的时候,就会出错。
以下是crontab脚本:
* * * * * root /usr/local/php/bin/php /xxx/xxxx/xxx/production.php >/dev/null 2>&1root 是执行脚本的用户
/usr/local/php/bin/php php脚本解释器,如果不写全路径的话会报错
>/dev/null 2>&1 忽略日志输出
附crontab规则详细实例
1、每天6:00执行
0 6 * * * root /home/mvp/osyunwei.sh
2、每周六凌晨4:00执行
0 4 * * 6 root /home/mvp/osyunwei.sh
3、每周六凌晨4:05执行
5 4 * * 6 root /home/mvp/osyunwei.sh
4、每周六凌晨4:15执行
15 4 * * 6 root /home/mvp/osyunwei.sh
5、每周六凌晨4:25执行
25 4 * * 6 root /home/mvp/osyunwei.sh
6、每周六凌晨4:35执行
35 4 * * 6 root /home/mvp/osyunwei.sh
7、每周六凌晨5:00执行
5 * * 6 root /home/mvp/osyunwei.sh
8、每天8:40执行
40 8 * * * root /home/mvp/osyunwei.sh
9、每天8:30执行
30 8 * * * root /home/mvp/osyunwei.sh
10、每周一到周五的11:41开始,每隔10分钟执行一次 #值得借鉴
41,51 11 * * 1-5 root /home/mvp/osyunwei.sh
或者
1-59/10 12-23 * * 1-5 root /home/mvp/osyunwei.sh
11、在每天的10:31开始,每隔2小时重复一次
31 10-23/2 * * * root /home/mvp/osyunwei.sh
12、每天15:00执行
0 15 * * * root /home/mvp/osyunwei.sh
13、每天的10:30开始,每隔2小时重复一次
30 10-23/2 * * * root /home/mvp/osyunwei.sh
14、每天15:30执行
30 15 * * * root /home/mvp/osyunwei.sh
15、每天17:50执行
50 17 * * * root /home/mvp/osyunwei.sh
16、每天8:00执行
0 8 * * * root /home/mvp/osyunwei.sh
17、每天18:00执行
0 18 * * * root /home/mvp/osyunwei.sh
18、每天8:30执行
30 8 * * * root /home/mvp/osyunwei.sh
19、每天20:30
30 20 * * * root /home/mvp/osyunwei.sh
20、每周一到周五2:00
0 2 * * 1-5 root /home/mvp/osyunwei.sh
21、每周一到周五9:30
30 9 * * 1-5 root /home/mvp/osyunwei.sh
22、每周一到周五8:00,每周一到周五9:00
0 8,9 * * 1-5 root /home/mvp/osyunwei.sh
23、每天23:59
59 23 * * * root /home/mvp/osyunwei.sh
24、每周六23:59
59 23 * * 6 root /home/mvp/osyunwei.sh
25、每天0:30
30 0 * * * root /home/mvp/osyunwei.sh
26、每周一到周五9:25到11:35之间、13:00到15:00之间,每隔10分钟运行一次
分区段写值得借鉴
25,35,45,55 9 * * 1-5 root /home/mvp/osyunwei.sh
5-59/10 10 * * 1-5 root /home/mvp/osyunwei.sh
5,15,25,35 11 * * 1-5 root /home/mvp/osyunwei.sh
*/10 13-15 * * 1-5 root /home/mvp/osyunwei.sh
27、每周一到周五8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次
30,50 8 * * 1-5 root /home/mvp/osyunwei.sh
30 9 * * 1-5 root /home/mvp/osyunwei.sh
*/30 10-11 * * 1-5 root /home/mvp/osyunwei.sh
30 13 * * 1-5 root /home/mvp/osyunwei.sh
0,30 14-15 * * 1-5 root /home/mvp/osyunwei.sh
28、每天23:50执行
50 23 * * * root /home/mvp/osyunwei.sh
29、每天10:00、16:00执行
0 10,16 * * * root /home/mvp/osyunwei.sh
30、每天5:30执行
30 5 * * * root /home/mvp/osyunwei.sh
31、每周一到周五9:30执行
30 9 * * 1-5 root /home/mvp/osyunwei.sh
32、每周一到周五13:00执行
0 13 * * 1-5 root /home/mvp/osyunwei.sh
33、每天7:51执行
51 7 * * * root /home/mvp/osyunwei.sh
34、每天7:53、12:40分别执行一次
53 7 * * * root /home/mvp/osyunwei.sh
40 12 * * * root /home/mvp/osyunwei.sh
35、每天7:55执行
55 7 * * * root /home/mvp/osyunwei.sh
36、每天8:10、16:00、20:00分别执行一次
10 8 * * * root /home/mvp/osyunwei.sh
0 16 * * * root /home/mvp/osyunwei.sh
0 20 * * * root /home/mvp/osyunwei.sh
37、每天7:57、8:00分别执行一次
57 7 * * * root /home/mvp/osyunwei.sh
0 8 * * * root /home/mvp/osyunwei.sh
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要请戳这里
最后,祝所有大家在面试中过关斩将,拿到心仪offer。如果想与一群3-8年资深开发者一起交流学习的话,需要
请戳这里shimo.im
每隔一段时间执行php_用php脚本,你如何定时更新商品列表相关推荐
- java每隔一段时间执行_8.Android中,每隔一段时间执行某一个任务(Timer)
1,在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和 TimerTask. Tim ...
- 总结以下三种方法,实现c#每隔一段时间执行代码:
总结以下三种方法,实现c#每隔一段时间执行代码: 方法一:调用线程执行方法,在方法中实现死循环,每个循环Sleep设定时间: 方法二:使用System.Timers.Timer类: 方法三:使用Sys ...
- 防抖与节流(鼠标移入事件每隔一段时间执行)
废话不多说,直接怼代码 <template><div><button @click="show = !show">Toggle render&l ...
- JS每隔一段时间执行一个方法
function funcTest(){ //每隔3秒执行一次timelyFun方法 window.setInterval("timelyFun()",3000); } windo ...
- js每隔一段时间执行方法
方法一:每隔10秒执行一次 1 2 3 4 5 6 7 8 //申明一个全局变量存放间隔函数 var setIntervalFun = null; //每隔10秒钟执行一次setXSJYLTime() ...
- oracle怎么设置sql每隔一段时间执行一次_Oracle大规模数据快速导出文本文件
哈喽,前几久,和大家分享过如何把文本数据快速导入数据库(点击即可打开),今天再和大家分享一个小技能,将Oracle数据库中的数据按照指定分割符.指定字段导出至文本文件. 首先来张图,看看导出的数据是什 ...
- NodeJS脚本中for循环中加入setTimeout实现每隔一段时间执行操作
在nodejs中打算实现每隔5s就console一下信息,总共打印10次,于是想到了for循环加setTimeout来实现,可是写出来发现10次在五秒后全部打印出来了,于是开始想办法解决,直接上解决办 ...
- 每隔一段时间执行shell命令
需求:每10秒钟打印一句话:"i am a superman". while true do echo "i am a superman" sleep 10 d ...
- python每隔半个小时执行一次_python – 在进程中每隔一段时间执行一次任务
如果您希望每2小时运行一次代码,最简单的方法就是使用cron或 类似的调度程序,具体取决于您的操作系统 如果你希望你的程序每n秒调用一次函数(在你的情况下为7200) 你可以使用一个线程和event. ...
最新文章
- [转载]静态构造函数
- NTT高级科学家:光子是深度学习的未来!光子有望替代电子计算机加速神经网络计算...
- java newdirectorystream_Path、Paths和DirectoryStreamT
- running Extension project directly on ABAP server without Launchpad
- datagridview绑定与详细说明 (搜集)
- STM32 HAL库 UART 串口读写功能笔记
- colorpix取色小工具_我发现一款神器!它集合了 60 多个超实用的工具
- 三星Galaxy Note10系列国内发布会官宣:8月21日见!
- java面试要点---Hibernate面试系统知识点复习,hibernate原理,缓冲---随时更新
- 给项目添加spring的测试单元
- Cesium.js学习第二天(立方体)
- 织梦DEDE采集文章标题过短,自带采集标题限制,解决文章标题字数长度方法
- 使用IntelliJ IDEA 配置Maven(入门)
- php amr格式转换,php 微信amr转mp3的方法
- 计算机软件添加信任,瑞星杀毒怎么添加信任软件 添加方法介绍
- 谷歌浏览器下载的内容老是自动打开
- 可交互绘图-Plotly
- win11系统截图的几种方法
- win版敬业签怎么通过便签快捷键对便签内容执行标记已完成操作?
- 利用SNMP获取H3C交换机端口信息
热门文章
- 3d建模电脑配置要求_建模你会一个软zbrush够吃一辈子,你学会了吗?
- win2008服务器系统功能,详解Win2008初始配置任务功能的应用
- Linux开放21通信,linux下开启ftp的21号port
- linux按括号截取字符串,Linux作业4
- mysql 5.6.13-winx64_MySQL-5.6.13 zip解压版的安装与配置教程
- UI设计实用干货素材|引导页模板
- UI设计超干货素材!小图标里的大学问!
- python往redis导数_Python:教你一招,将500W+的数据快速写入redis(文内赋赠教程)...
- Python读写文件说明
- PUSHA/POPA