转自:http://www.blhere.com/966.html

背景是这样的:我需要一段PHP代码去定期对数据库操作,并把结果保存起来。如果方法是用户请求的时候来触发执行这个代码,显然用户的响应时间变长,影响用户体验!如果利用操作系统的定时任务,执行频率也是非常高的。

下面写个简单例子来讲解这个方法。

1
2
3
4
5
6
7
8
9
10
<?php
ignore_user_abort();//关闭浏览器仍然执行
);//让程序一直执行下去
;//每隔一定时间运行
do{
    $msg=
date("Y-m-d H:i:s");
    file_put_contents("log.log",$msg,FILE_APPEND);//记录日志
    sleep($interval);//等待时间,进行下一次操作。
}while(true);
?>

需要说明的是:程序没有写结束判断语句,他会无限循环下去。当然如果想停止的话,可以重启apache,重启后就无效了。想再次进行定时执行,那么把这段代码再一次运行。

上面简单例子可以说明这个原理。
那么针对上面的例子,我可以进行一下改良方案。

你需要一个执行脚本的开关,你可以用外部文件引入的方法来实现,在while循环的时候,include开关变量即可。那么就可以这样实现:
建立外部引入变量文件 switch.php 内容如下:

1
2
3
<?php
;//1执行脚本 0退出执行脚本
?>

改良脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    ignore_user_abort();//关闭浏览器后,继续执行php代码
    );//程序执行时间无限制
    ;//多长时间执行一次
    $switch = include 'switch.php';
    while($switch){
        $switch = include 'switch.php';
        $msg=
date("Y-m-d H:i:s").$switch;
            file_put_contents("log.log",$msg,FILE_APPEND);//记录日志
        sleep($sleep_time);//等待时间,进行下一次操作。
    }
    exit();
   
?>

让PHP文件每隔几秒执行一次的更多相关文章

  1. php文件每隔几秒执行一次

    说实话,linux 下面的crontab 任务完全可以实现所有的定时任务脚本,但是有些脚本只需要在一段时间内执行,过了这段时间之后,就不再执行定时脚本了.在使用crontab的时候,就需要人为的关闭掉 ...

  2. linux crontab & 每隔10秒执行一次

    linux下定时执行任务的方法  在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出. 在LINU ...

  3. oracle起定时任务,每隔1秒执行一次

    创建一个测试表和一个存储过程: create table a(a date); create or replace procedure test as begin insert into a valu ...

  4. linux定时任务crontab 实现如何每秒执行一次!

    linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. Cron 各项的描述 以下是 crontab 文件的格式: {minute} {hour} ...

  5. Linux定时任务crontab每三秒执行一次shell

    第一种方法:当然首先想到的是写一个触发的脚本,在触发脚本中使用死循环来解决此问题,如下: cat kick.sh #!/bin/bash while : ;do /home/somedir/scrip ...

  6. JavaScript-每隔5分钟执行一次ajax请求的实现方法

    个页面好像只能有一个 window.onload=function(){},所以要有多个事件,这样写就好了 window.onload=function(){ //假设这里每个五分钟执行一次test函 ...

  7. (网页)js每隔5分钟执行一次ajax请求的实现方法(转)

    转自脚本之家: 一个页面好像只能有一个 window.onload=function(){},所以要有多个事件,这样写就好了 window.onload=function(){ //假设这里每个五分钟 ...

  8. PHP定时器实现每隔几秒运行一次

    php是服务器端脚本了并不像js那样有专业的settimeout函数来定时执行了,但只要浏览器不关闭各阶层是可以做到了,下面一起来看看. 下面写个简单例子来讲解这个方法. <?php ignor ...

  9. JVM菜鸟进阶高手之路六(JVM每隔一小时执行一次Full GC)

    转载请注明原创出处,谢谢! 上次分析详细地址在:http://www.jianshu.com/p/a6236cd39e2d 以为上次问题是rmi的问题就此结束了,但是问题并没有结束,其实本次问题不是r ...

随机推荐

  1. 44个 Javascript 变态题解析 (上)

    原题来自: javascript-puzzlers(http://javascript-puzzlers.herokuapp.com/) 读者可以先去做一下感受感受. 当初笔者的成绩是 21/44… ...

  2. PAT甲级——A1016 Phone Bills

    A long-distance telephone company charges its customers by the following rules: Making a long-distan ...

  3. MR过程解析(转自about云)

     图中1:表示待处理数据,比如日志,比如单词计数图中2:表示map阶段,对他们split,然后送到不同分区图中3:表示reduce阶段,对这些数据整合处理.图中4:表示二次mapreduce,这个是m ...

  4. php数据几行代码导出到excel(非插件)

    <?php header("Content-type:application/vnd.ms-excel"); header("Content-Disposition ...

  5. 通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏--核心代码--猜测次数 可复制直接使用 娱乐 可封装 函数

      猜数字游戏--核心代码--猜测次数   #猜数字--核心代码--猜测次数 number=33 amount=3 count=0 while count<=amount: conversion ...

  6. TZ_14_Zuul网关

    1.spring-cloud的微服务大致是 2.zuul是 Netflix开源的微服务网关, 它可以和 Eureka. Ribbon. Hystrix等组件配合使用.zul的核心是一系列的过滤器,这些 ...

  7. vim Tab的设置问题

    VIM 中处理 TAB 异常的方便. 键盘上的 TAB 键,与文件中的 TAB 符号一定要区分开,这是两个概念. 显示当前文件中的 Tab /\t 实际上,就是查询 \t 符号. shiftwidth ...

  8. beego 批量删除问题

    o := orm.NewOrm()    qs := o.QueryTable(new(ExecutionJobs))    javaTimestamp = 1557738394000    qs = ...

  9. 面试Mysql的几个常见问题

    1.insert时如果数据重复如何用update? ,,) ; 2.一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启, ...

  10. oracle创建定时任务

    一.dmbs_job dbms_job涉及到的知识点 1.创建job: variable jobno number; dbms_job.submit(:jobno, —-job号  'your_pro ...