利用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语法(4)
Oct 09 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
解析argc argv在php中的应用
Jun 24 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
php对关联数组循环遍历的实现方法
Mar 13 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 PHP
为百度UE编辑器上传图片添加水印功能
Apr 16 PHP
PHP环境中Memcache的安装和使用
Nov 05 PHP
linux下php上传文件注意事项
Jun 11 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 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语法速查表
2006/12/06 PHP
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
15种PHP Encoder的比较
2007/04/17 PHP
php auth_http类库进行身份效验
2009/03/19 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
很好用的js日历算法详细代码
2013/03/07 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
2017/01/19 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
Openlayers实现测量功能
2020/09/25 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
JS实现纸牌发牌动画
2021/01/19 Javascript
python转换摩斯密码示例
2014/02/16 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
通过shell+python实现企业微信预警
2019/03/07 Python
详解Python用户登录接口的方法
2019/04/17 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
秋季运动会加油稿200字
2014/01/11 职场文书
小班下学期评语
2014/05/04 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
爱护公共设施标语
2014/06/24 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers
Python作用域和名称空间的详细介绍
2022/04/13 Python
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers