利用php-cli和任务计划实现订单同步功能的方法


Posted in PHP onMay 03, 2017

1、应用场景

用户的订单情况,需要我们去平台网站通过API获取。有两个要点:

(1)用户遍历,我们必须遍历每个用户,去获取他们的订单;

(2)定时获取,获取用户订单不是一劳永逸的,现在没有不代表下一秒没有,我们必须设定一个合适的时间间隔去获取他。

2、通过遍历表来实现用户遍历

用户遍历的问题,我们可以通过把所有用户放在一个表里,并且表里有一个自增id,我们计算出id的最大值,然后从0开始循环取id等于指定值的行出来,这样可以实现遍历整个表

3、定时获取的方法探讨

(1)用死循环不断执行fetch,间隔以sleep动作

考虑到当用户多了以后,可能几乎每时每刻都需要进行这样fetch的动作,那么是否还需要用任务计划呢?为什么不直接while(true)死循环呢?而且还可以配合以sleep动作。

这个方案没考虑到的一点是,php是脚本文件,他不会自动垃圾回收,貌似说也可以手动回收,但总归麻烦而且充满不确定性。只要页面执行完他就干干净净自己清掉了,所以,能简单解决的事情不要用麻烦的方法。

(2)用任务计划实现定时执行fetch,如果已经在执行则不做任何操作,直到下个计划时间

这个方法还是用任务计划,而且任务计划很强大,默认就可以实现当前实例还在执行的时候不要启动新实例。也就是说,如果一个执行的动作,执行的时间超过任务计划的间隔,那么当下个任务启动的时候,第一个任务还没执行完成,这种情况他自动不会重复执行。设定如下图:

利用php-cli和任务计划实现订单同步功能的方法

以上这篇利用php-cli和任务计划实现订单同步功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
我的论坛源代码(四)
Oct 09 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 PHP
PHP实现微信退款功能
Oct 02 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
Aug 03 PHP
php删除数组指定元素实现代码
May 03 #PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 #PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 #PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 #PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 #PHP
php 函数使用可变数量的参数方法
May 02 #PHP
PHP 序列化和反序列化函数实例详解
Jul 18 #PHP
You might like
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
pandas 将索引值相加的方法
2018/11/15 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
python中如何使用虚拟环境
2020/10/14 Python
python实现扫雷游戏的示例
2020/10/20 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
信用社实习人员自我鉴定
2013/09/20 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
教师自荐信范文
2015/03/06 职场文书
MYSQL 表的全面总结
2021/11/11 MySQL
python 判断文件或文件夹是否存在
2022/03/18 Python