利用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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
php字符串截取问题
Nov 28 PHP
php数组总结篇(一)
Sep 30 PHP
php 验证码制作(网树注释思想)
Jul 20 PHP
php写的简易聊天室代码
Jun 04 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 PHP
php学习笔记之基础知识
Nov 08 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
PDO::setAttribute讲解
Jan 29 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与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
jquery div拖动效果示例代码
2013/12/08 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
python字符串连接方法分析
2016/04/12 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
python numpy实现rolling滚动案例
2020/06/08 Python
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
代办委托书怎样写
2014/04/08 职场文书
美术社团活动总结
2014/06/27 职场文书
学习考察心得体会
2014/09/04 职场文书
门球健将观后感
2015/06/16 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL