利用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 相关文章推荐
使用Apache的rewrite技术
Jun 22 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
PHP 无限分类三种方式 非函数的递归调用!
Aug 26 PHP
PHP header()函数常用方法总结
Apr 11 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
PHP之autoload运行机制实例分析
Aug 28 PHP
PHP中使用array函数新建一个数组
Nov 19 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
php微信开发之图片回复功能
Jun 14 PHP
Laravel中为什么不使用blpop取队列详析
Aug 01 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
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
Javascript removeChild()删除节点及删除子节点的方法
2015/12/27 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
python实现简易学生信息管理系统
2020/04/05 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
成语的广告词
2014/03/19 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
Go语言基础知识点介绍
2021/07/04 Golang