利用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 相关文章推荐
PHPShop存在多个安全漏洞
Oct 09 PHP
PHP+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
Feb 15 PHP
实现了一个PHP5的getter/setter基类的代码
Feb 25 PHP
THINKPHP+JS实现缩放图片式截图的实现
Mar 07 PHP
PHP对字符串的递增运算分析
Aug 08 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
php 深入理解strtotime函数的使用详解
May 23 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
Jun 12 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
PHP基于数组实现的分页函数实例
Aug 20 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 PHP
PHP一个简单的无需刷新爬虫
Jan 05 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时间戳与日期的转换
2013/06/06 PHP
PHP常用正则表达式集锦
2014/08/17 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
prototype Element学习笔记(篇一)
2008/10/26 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
原生JS实现留言板
2020/03/26 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
Python itertools模块详解
2015/05/09 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
python 线程的五个状态
2020/09/22 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
2014年道德讲堂实施方案
2014/03/05 职场文书
2014财产信托协议书范本
2014/11/18 职场文书
中秋客户感谢信
2015/01/22 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
Python四款GUI图形界面库介绍
2022/06/05 Python
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL