利用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 相关文章推荐
数字转英文
Dec 06 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
php 静态变量的初始化
Nov 15 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
在windows服务器开启php的gd库phpinfo中未发现
Jan 13 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
Apr 25 PHP
深入php函数file_get_contents超时处理的方法详解
Jun 03 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
PHP生成(支持多模板)二维码海报代码
Apr 30 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 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
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
php把session写入数据库示例
2014/02/26 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
Python中的yield浅析
2014/06/16 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
python批量图片处理简单示例
2019/08/06 Python
python实现ip地址的包含关系判断
2020/02/07 Python
Python对象的属性访问过程详解
2020/03/05 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
python爬取代理ip的示例
2020/12/18 Python
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
高中语文课后反思
2014/04/27 职场文书
党员民主生活会材料
2014/12/15 职场文书
诚信承诺书
2015/01/19 职场文书
就业意向协议书
2015/01/29 职场文书
义诊活动通知
2015/04/24 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
python playwright 自动等待和断言详解
2021/11/27 Python
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android
java实现面板之间切换功能
2022/06/10 Java/Android