利用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 相关文章推荐
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
Dec 11 PHP
PHP合并数组+与array_merge的区别分析
Aug 01 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
用php来改写404错误页让你的页面更友好
Jan 24 PHP
Laravel 5框架学习之表单验证
Apr 08 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
PHP递归遍历多维数组实现无限分类的方法
May 06 PHP
PHP查询大量数据内存耗尽问题的解决方法
Oct 28 PHP
PHP批量删除jQuery操作
Jul 23 PHP
laradock环境docker-compose操作详解
Jul 29 PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 PHP
PHP 对象接口简单实现方法示例
Apr 13 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
理解php Hash函数,增强密码安全
2011/02/25 PHP
dedecms集成财付通支付接口
2014/12/28 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
批处理与python代码混合编程的方法
2016/05/19 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
Python随机函数random()使用方法小结
2018/04/29 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
python 杀死自身进程的实现方法
2019/07/01 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
python实现随机加减法生成器
2020/02/24 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
巴西男士胡须和头发护理产品商店:Beard
2017/11/13 全球购物
中秋晚会策划方案
2014/06/12 职场文书
大学生标准自荐书
2014/06/15 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python
MySQL 分页查询的优化技巧
2021/05/12 MySQL
Hive日期格式转换方法总结
2022/06/25 数据库