利用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 中文字符入库或显示乱码问题的解决方法
Apr 12 PHP
比较详细PHP生成静态页面教程
Jan 10 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
php随机生成数字字母组合的方法
Mar 18 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
深入理解PHP原理之执行周期分析
Jun 01 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
实例说明js脚本语言和php脚本语言的区别
Apr 04 PHP
YII框架关联查询操作示例
Apr 29 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 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
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
js实现有时间限制消失的图片方法
2015/02/27 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
浅析Ajax语法
2016/12/05 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
Python多进程编程技术实例分析
2014/09/16 Python
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
python 链接和操作 memcache方法
2017/03/04 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
详解python UDP 编程
2020/08/24 Python
悦木之源美国官网:Origins美国
2016/08/01 全球购物
前台接待的工作职责
2013/11/21 职场文书
大专学生求职自荐信
2014/07/06 职场文书
公安学专业求职信
2014/07/27 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
Django框架中模型的用法
2022/06/10 Python