利用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容易被忽略而出错陷阱 数字与字符串比较
Nov 10 PHP
探讨如何在php168_cms中提取验证码
Jun 08 PHP
php ios推送(代码)
Jul 01 PHP
PHP与javascript实现变量交互的示例代码
Jul 23 PHP
使用ob系列函数实现PHP网站页面静态化
Aug 13 PHP
php生成百度sitemap站点地图类函数实例
Oct 17 PHP
php实现的ping端口函数实例
Nov 12 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
Jul 09 PHP
php中使用websocket详解
Sep 23 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
Oct 11 PHP
简单谈谈 php 文件锁
Feb 19 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 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 程序授权验证开发思路
2009/07/09 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
ThinkPHP权限认证Auth实例详解
2014/07/22 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
详解js前端代码异常监控
2017/01/11 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
Python实现批量修改文件名实例
2015/07/08 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
python实现数据库跨服务器迁移
2018/04/12 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
Django模板语言 Tags使用详解
2019/09/09 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
python的sys.path模块路径添加方式
2020/03/09 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
职工运动会邀请函
2014/02/02 职场文书
《特殊的葬礼》教学反思
2014/04/27 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
小学开学标语
2014/07/01 职场文书
教师节倡议书
2014/08/30 职场文书
群众路线表态发言材料
2014/10/17 职场文书
python双向链表实例详解
2022/05/25 Python