详解PHP实现执行定时任务
PHP在这方面应该说是比较弱,如果只用php去实现可以如下:
<?php ignore_user_abort();//关闭浏览器后,继续执行php代码 set_time_limit(0);//程序执行时间无限制 $sleep_time = 1;//多长时间执行一次 do{ $fp = fopen('test.txt','a+'); fwrite($fp,"这是一个php博客:phpddt.com \n"); fclose($fp); sleep($sleep_time); }while(true); ?>
但是当我执行脚本的时候,即使我关闭了浏览器,我根本就没法去停止这段程序了,所以你需要一个执行脚本的开关,你可以用外部文件引入的方法来实现,在while循环的时候,include开关变量即可。那么就可以这样实现:
建立外部引入变量文件 switch.php 内容如下:
<?php return 1;//1执行脚本 0退出执行脚本 ?>
改良脚本如下:
<?php ignore_user_abort();//关闭浏览器后,继续执行php代码 set_time_limit(0);//程序执行时间无限制 $sleep_time = 5;//多长时间执行一次 $switch = include 'switch.php'; while($switch){ $switch = include 'switch.php'; $fp = fopen('test.txt','a+'); fwrite($fp,"这是一个php博客:phpddt.com $switch \n"); fclose($fp); sleep($sleep_time); } exit(); ?>
这个脚本只是测试可行,具体效率应该不高,对于lamp,你完全可以使用crontab 来实现。
再补充一段小代码:
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=60*30;// 每隔半小时运行 do{ //这里是你要执行的代码 sleep($interval);// 等待5分钟 }while(true);
关于PHP定时执行任务的实现就为大家介绍这么多,之后还有相关文章为大家分享,不要错过。
相关推荐
-
php版本的cron定时任务执行器使用实例
本文实例讲述了php版本的cron定时任务执行器使用方法,是非常实用的一个功能应用.具体方法如下: 由于服务器crontab只能精确到分钟,因此程序的起点也是分钟. 该功能一共包括三个部分: 一.配置文件: 配置文件是用来返回要执行的定时任务文件,注意一下*的使用就行了,有两个模式,就是 Y-m-d H:i :年 月 日 时 分 N H:i :星期(1 - 7|周一 - 周日) 时 分 配置文件croning.php如下: /** * 任务管理器配置文件 *
-
PHP对接微信公众平台消息接口开发流程教程
一.写好接口程序 在你的服务器上上传好一个接口程序文件,如http://www.yourdomain.com/weixin.php 内容如下: 复制代码 代码如下: <?phpdefine("TOKEN", "weixin");//自己定义的token 就是个通信的私钥$wechatObj = new wechatCallbackapiTest();$wechatObj->valid();//$wechatObj->responseMsg();c
-
PHP定时任务获取微信access_token的方法
本文实例讲述了PHP定时任务获取微信access_token的方法.分享给大家供大家参考,具体如下: 微信access_token在开发时会变的好像是几分种不一样了,这里我们来介绍关于PHP定时任务获取微信access_token的方法. 最近开发微信公众平台,公众号调用各接口时都需使用access_token,access_token是公众号的全局唯一接口调用凭据,开发时需要进行妥善保存. access_token有效期为7200秒 ,重复获取将导致上次获取的access_token失效. 由
-
linux使用crontab实现PHP执行计划定时任务
首先说说cron,它是一个linux下的定时执行工具.根用户以外的用户可以使用 crontab 工具来配置 cron 任务.所有用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行.要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令来编辑该用户的 crontab.该文件使用的格式和 /etc/crontab 相同.当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名
-
详解PHP实现定时任务的五种方法
定时运行任务对于一个网站来说,是一个比较重要的任务,比如定时发布文档,定时清理垃圾信息等,现在的网站大多数都是采用PHP动态语言开发的,而对于PHP的实现决定了它没有Java和.Net这种AppServer的概念,而http协议是一个无状态的协议,PHP只能被用户触发,被调用,调用后会自动退出内存,没有常驻内存. 如果非要PHP去实现定时任务, 可以有以下几种解决方案: 一. 简单直接不顾后果型 <?php ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. se
-
PHP通过CURL实现定时任务的图片抓取功能示例
本文实例讲述了PHP通过CURL实现定时任务的图片抓取功能.分享给大家供大家参考,具体如下: 下文为各位介绍一个PHP定时任务通过CURL图片的抓取例子,希望例子对大家帮助,基本思路就是通过一个URL连接,将所有图片的地址抓取下来,然后循环打开图片,利用文件操作函数下载下来,保存到本地,并且把图片的alt属性也抓取下来,最后将数据保存到自己数据库. 废话不多说,看程序就能明白了,其中,需要用到PHP定时任务和PHP的一个第三方插件simple_html_dom.php 的使用,参考simple_
-
PHP版微信公众平台红包API
重写了一下PHP下面的微信API接口, 微信红包支持,JSAPI的动态参数接口支持 http://git.oschina.net/youkuiyuan/yky_test/blob/master/class/wxapi.class.php 微信API类 - 增加红包支持 <?php /******************************************************** * @author Kyler You <QQ:2444756311> * @link htt
-
php微信支付之APP支付方法
本文实例讲述了微信开放平台移动应用集成微信支付功能.分享给大家供大家参考.具体分析如下: WechatAppPay文件代码如下: 复制代码 代码如下: <?php namespace common\services\WechatPay; class WechatAppPay extends WechatPayBase { //package参数 public $package = []; //异步通知参数 public $notify = []; //推送
-
基于php的微信公众平台开发入门实例
本文实例讲述了基于php的微信公众平台开发方法.分享给大家供大家参考.具体如下: 最近在做微信公众平台开发,一口气写了二十几个功能,挺有意思的- 今天来分享一下开发经验~ 微信公众平台提供的接口很简单,先看看消息交互流程: 说的通俗一些,用户使用微信发送消息 -> 微信将数据发送给开发者 -> 开发者处理消息并返回数据至微信 -> 微信把返回数据发送给用户,期间数据交互通过XML完成,就这么简单. 下面写个实例,开发微信智能聊天机器人: 1. 注册微信公众平台账号 微信公众平台:
-
详解PHP实现执行定时任务
PHP在这方面应该说是比较弱,如果只用php去实现可以如下: <?php ignore_user_abort();//关闭浏览器后,继续执行php代码 set_time_limit(0);//程序执行时间无限制 $sleep_time = 1;//多长时间执行一次 do{ $fp = fopen('test.txt','a+'); fwrite($fp,"这是一个php博客:phpddt.com \n"); fclose($fp); sleep($sleep_time); }wh
-
详解Gotorch多机定时任务管理系统
前言 先介绍下问题: 组内有十来台机器,上面用 cron 分别定时执行着一些脚本和 shell 命令,一开始任务少的时候,大家都记得哪台机器执行着什么,随着时间推移,人员几经变动,任务也越来越多,再也没人能记得清哪些任务在哪些机器上执行了,排查和解决后台脚本的问题也越来越麻烦. 解决这个问题也不是没有办法: 维护一个 wiki,一旦任务有变动就更新 wiki,但一旦忘记更新 wiki,任务就会变成孤儿,什么时候出了问题更不好查. 布置一台机器,定时拉取各机器的 cron 配置文件,进行对比统计,
-
详解win7 cmd执行vue不是内部命令的解决方法
详解win7 cmd执行vue不是内部命令的解决方法 通过全局安装vue-cli npm install --global vue-cli 在cmd中运行vue提示不是内部命令,原因是环境变量没有加上 找到npm的位置:(不在这个位置的全局搜索vue.cmd即可) C:\Users\Administrator\AppData\Roaming\npm 打开我的电脑-->右键属性-->高级系统设置-->环境变量-->Path-->添加获得npm的位置,保存,重启cmd命令工具即可
-
详解vuejs中执行npm run dev出现页面cannot GET/问题
1.问题描述 最近用vue-cli搭建了一个小项目,其中在对项目进行打包测试时修改了webpack.base.conf.js中的配置信息,之后再用npm run dev之后出现如下的情况: 1.浏览器中无法呈现已有页面,并且在浏览器控制台中报404错误 2.命令窗口中并没有报错 其中有人说是路由等问题,后来通过创建新的项目对比配置文件信息,发现是配置信息导致: 注释部分是打包时需要修改的地方(根据打包时网站根目录,这个没处理好可能会出现图片路径加载失败问题),而上面才是在开发环境下需要的配置信息
-
详解JavaScript 的执行机制
一.关于javascript javascript是一门单线程语言,在最新的HTML5中提出了Web Worker,但javascript是单线程这一核心仍未改变. 为什么js是单线程的语言?因为最初的js是用来在浏览器验证表单操纵DOM元素的.如果js是多线程的话,两个线程同时对一个DOM进行了相互冲突的操作,那么浏览器的解析是无法执行的. Web Worker 的作用,就是为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行.在主线程运行的同
-
详解PHP的执行原理和流程
简介 先看看下面这个过程: • 我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的: • PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口): • PHP总共有三个模块:内核.Zend引擎.以及扩展层: • PHP内核用来处理请求.文件流.错误处理等相关操作: • Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它: • 扩展层是一组函数.类库和流,PHP使用它们来执行一些特定的操作.比如,我们需要mysq
-
详解MyBatis直接执行SQL查询及数据批量插入
一.直接执行SQL查询: 1.mappers文件节选 <resultMap id="AcModelResultMap" type="com.izumi.InstanceModel"> <result column="instanceid" property="instanceID" jdbcType="VARCHAR" /> <result column="insta
-
详解django中使用定时任务的方法
今天介绍在django中使用定时任务的两种方式. 方式一: APScheduler 1)安装: pip install apscheduler 2)使用: from apscheduler.scheduler import Scheduler from django.core.cache import cache # 实例化 sched = Scheduler() # 每30秒执行一次 @sched.interval_schedule(seconds=30) def sched_test():
-
详解spring多线程与定时任务
本篇主要描述一下spring的多线程的使用与定时任务的使用. 1.spring多线程任务的使用 spring通过任务执行器TaskExecutor来实现多线程与并发编程.通常使用ThreadPoolTaskExecutor来实现一个基于线程池的TaskExecutor. 首先你要实现AsyncConfigurer 这个接口,目的是开启一个线程池 代码如下: package com.foreveross.service.weixin.test.thread; import java.util.co
-
详解Django中间件执行顺序
中间件 Django中的中间件是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出.中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性. 我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预. 1 中间件的定义方法 定义一个中间件工厂函数,然后返回一个可以别调用的中间件. 中间件工厂函数需要接收一个可以调用的get_response对象. 返回的中间件也是一个可以被调用的对象,并且像视图一样需要接收
随机推荐
- 使用mysqldump对MySQL的数据进行备份的操作教程
- jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
- Filezilla server配置FTP服务器中的各种问题与解决方法
- Spring Data JPA实现动态查询的两种方法
- JavaScript+html5 canvas实现图片破碎重组动画特效
- 教你用javascript实现随机标签云效果_附代码
- Js遍历键值对形式对象或Map形式的方法
- 深入理解Python中装饰器的用法
- Go语言中字符串的查找方法小结
- c#窗体传值用法实例详解
- C#获取ListView鼠标下的Item实例
- 使用PHP数组实现无限分类,不使用数据库,不使用递归.
- Android中制作进度框和环形进度条的简单实例分享
- js不能获取隐藏的div的宽度只能先显示后获取
- java持久层框架mybatis防止sql注入的方法
- jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
- qq登录,新浪微博登录接口申请过程中遇到的问题
- 用JS实现的一个include函数
- node.js中的http.response.writeHead方法使用说明
- 深入解析C语言中常数的数据类型