利用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版
Oct 09 PHP
php中用于检测一个地理IP地址是否可用的代码
Feb 19 PHP
PHP登录环节防止sql注入的方法浅析
Jun 30 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
Aug 22 PHP
php输入流php://input使用浅析
Sep 02 PHP
PHP文件上传判断file是否己选择上传文件的方法
Nov 10 PHP
php接口数据加密、解密、验证签名
Mar 12 PHP
php-msf源码详解
Dec 25 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 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面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
PHP会员找回密码功能的简单实现
2016/09/05 PHP
php PDO异常处理详解
2016/11/20 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
浅析JavaScript声明变量
2015/12/21 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
Python函数学习笔记
2008/10/07 Python
开源Web应用框架Django图文教程
2017/03/09 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
python 基于opencv去除图片阴影
2021/01/26 Python
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
学生保证书格式
2015/02/27 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python