1、直接使用PHP来完成定时

<?php
ignore_user_abort(false);//当用户关闭页面时服务停止
set_time_limit(0); //设置执行时间,单位是秒。0表示不限制。
date_default_timezone_set('Asia/Shanghai');//设置时区 while(TRUE)
{
//这里是需要定时执行的任务
sleep($interval);//暂停时间(单位为秒)
}
?>

2.Linux/Unix的定时任务 定时直接可以用cron来执行一个php脚本 或者其他语言的脚本[你要有足够的系统权限]

比如每隔5分钟执行下 /root/bin目录下的test.php脚本

*/ * * * * php /root/bin/test.php
<?php
ignore_user_abort(true);//设置与客户机断开是否会终止脚本的执行。
  set_time_limit(0); //设置脚本超时时间,为0时不受时间限制
  ob_end_clean();//清空缓存
  ob_start();//开始缓冲数据
  while(1){
   echo str_repeat(" ",1024);//写满IE有默认的1k buffer
   ob_flush();//将缓存中的数据压入队列
   flush();//输出缓存队列中的数据
   echo "now time is ".date('h:i:s') . "<br/>";//打印数据,其实是先将数据存入了缓存中
   usleep(1000000);//延迟一秒(暂停一秒)
  }
?>

如果要求实现连续、均匀的输出效果(如输出时间),则应设置缓存,即使用图a对应的方法;如果对输出显示的连续性要求不高,或者时间间隔比较大(如定期自动备份,定时加密控制等),则使用图b对应的方法即可。

   为方便理解,提供相关函数作用说明如下:
  ①ignore_user_abort(bool):设置与客户机断开是否会终止脚本的执行。
  ②set_time_limit(int seconds)设置允许脚本运行的时间,单位为秒。参数值为0时不受限制。
  ③ob_end_clean():清除服务端缓存的数据
  ④ob_start():开启一个缓存(可嵌套)
   ⑤ob_flush():将缓存中的数据压入队列
  ⑥flush():输出缓存队列中的数据
  ⑦usleep(int m-seconds):以指定的微秒数延缓程序的执行。
  注:
  flush()和ob_flush()的正确顺序应是,先ob_flush()再flush(),不可弄混。
  usleep()函数可替换成sleep()函数,不同之处在于sleep()的参数是秒。

FROM:http://blog.tianya.cn/blogger/post_read.asp?BlogID=4315093&PostID=42870088

          http://blog.uacool.com/?p=642

          http://dev.cobub.com/zh/docs/cobub-razor/auto-archiving/

用PHP实现定时器功能的更多相关文章

  1. Linux使用一个定时器实现设置任意数量定时器功能【转】

    转自:https://www.jb51.net/article/120748.htm 为什么需要这个功能,因为大多数计算机软件时钟系统通常只能有一个时钟触发一次中断.当运行多个任务时,我们会想要多个定 ...

  2. laravel实现定时器功能

    前记 laravel实现定时器功能有两种方法: 1. 使用 command . 2.   在闭包函数内写实现的方法. 在这里我比较推荐第一种方法,因为第一种方法把具体的实现抽离出来了,看起来简单且富有 ...

  3. JAVA实现定时器功能

    在接口开发时,有一种开发模式叫定时器模式,可以理解为每经过一段预设的时间就会执行一次事件,而在我们的工作中,这个事件所实现的功能一般是将两个系统的数据信息进行同步,这样就实现了两个系统通过接口进行对接 ...

  4. 定时器_在.net core3.0 webapi中添加自定义定时器功能

    前言:想在.net framework环境使用自定义定时器的话,参考我的另一篇文章:https://www.cnblogs.com/lxhbky/p/10242839.html 想在.net core ...

  5. TIM4定时器功能设置

    一.初始化过程 /*********************************************************************** 利用TIM4定时器作为计时,每个0.1 ...

  6. 不用写Windows服务实现定时器功能(FluentScheduler )

    MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自 ...

  7. Android定时器功能实现方法

    在Android开发中,定时器一般有以下3种实现方法: 1.采用Handler与线程的sleep(long)方法 2.采用Handler的postDelayed(Runnable, long)方法 3 ...

  8. Delphi的DLL里如何实现定时器功能?

    一,首先引入“mmsystem”单元. 二,启动定时器: var MMTimerID: Integer; // 定时器ID MMTimerID := timeSetEvent(1000, 0, @Ti ...

  9. 【swoole】如果使用好定时器功能

    swoole中提供了一个定期器的用法 $server->tick(1000, function() use ($server, $fd) { $server->send($fd, &quo ...

  10. MFC的DLL中实现定时器功能

    方法一:创建一个线程, 反复读系统时间不就可以了? 如果定时要求不严,用Sleep就可以了.DWORD WINAPI TimerThread(LPVOID pamaram) { UINT oldTic ...

随机推荐

  1. c++ 类型安全

    类型安全很大程度上可以等价于内存安全,类型安全的代码不会试图访问自己没被授权的内存区域.“类型安全”常被用来形容编程语言,其根据在于该门编程语言是否提供保障类型安全的机制:有的时候也用“类型安全”形容 ...

  2. ArrayList与LinkedList区别

    ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个 ...

  3. squid 学习笔记

    Squid学习笔记 1.安装前的配置 编译安装之前需要校正的参数主要包括File Descriptor和Mbuf Clusters. 1.File Descriptor 查看文件描述符的限制数目: u ...

  4. MySQL使用痕迹清理~/.mysql_history

    mysql会给出我们最近执行的SQL命令和脚本:同linux command保存在~/.bash_history一样,你用mysql连接MySQL server的所有操作也会被记录到~/.mysql_ ...

  5. C#设计模式(3):抽象工厂模式(Abstract Factory)(转载)

    概述 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作:同时由于需求的变化,往往存在着更多系列对象的创建工作.如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来 ...

  6. 导入安全证书到jdk步骤详细说明-原

    一.首先要在浏览器打开需要证书的网站,然后把证书下载下来,保存的证书名称随意命名,只要保证唯一性(这个唯一性下文有解释) 二.然后把证书复制到%JAVA_HOME%/jre/bin/路径下,即保证证书 ...

  7. Gradle用户指南(2)-基本命令

    1.定义任务 使用task 关键字来定义gradle 任务 例:创建一个 build.gradle 命名的文件: build.gradle task hello { doLast { println ...

  8. 解决mysqldump: Got error: 1044: Access denied for user

    转自:http://blog.slogra.com/post-512.html 今天给新加的几个数据库备份,在执行mysqldump的时候,居然报mysqldump: Got error: 1044: ...

  9. JavaScript 实现鼠标拖动元素

    一.前言 最开始实现鼠标拖动元素的目的就是在一个页面上拖动很多小圆点,用于固定定位,然后在复制HTML,粘贴在页面的开发代码中,就是这么一个功能,实现了很多遍,都没有做好,不得已采用了jQuery.f ...

  10. Java EE学习——Quartz的Cron表达式

    经历过低谷后,还是要好好学习,越失落会越来越落后. 今天写一下Cron表达式的用法,虽然是之前自己写的,也过了挺长一段时间,这次就拿出来作为回顾吧. Cron表达式是Quartz的精髓(个人觉得),比 ...