利用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 has encountered an Access Violation
Jan 15 PHP
PHP与SQL注入攻击[一]
Apr 17 PHP
PHP源码之 ext/mysql扩展部分
Jul 17 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
destoon整合ucenter后注册页面不跳转的解决方法
Jun 21 PHP
浅谈ThinkPHP的URL重写
Nov 25 PHP
php实现递归抓取网页类实例
Apr 03 PHP
PHP数组式访问接口ArrayAccess用法分析
Dec 28 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
使用PHP访问RabbitMQ消息队列的方法示例
Jun 06 PHP
php微信公众号开发之简答题
Oct 20 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中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
Python列表切片用法示例
2017/04/19 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
使用Python进行目录的对比方法
2018/11/01 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
String是最基本的数据类型吗?
2013/06/13 面试题
2014年医生工作总结
2014/11/21 职场文书
武夷山导游词
2015/02/03 职场文书
鲁迅故里导游词
2015/02/05 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL