zoukankan      html  css  js  c++  java
  • php定时任务的几种方法

    由于PHP只能被用户触发调用,调用后自动退出内存,没有常驻内存,因此无法准确的定时处理。

    一下是php定时任务的几种方法

    1.简单直接不顾后果型(通过php语言实现定时):

        function index(){
            //设置与客户机断开是否会终止脚本的运行:true代表忽略与客户机断开,false会导致脚本程序的运行;
            ignore_user_abort(true);
            //最大执行时间:单位s;0代表永久执行直到程序结束
            set_time_limit(10);
            $a = 1;
            do{
                /*
                 * 写入文件file_put_contents(filename,data[,flags,context])
                 * filename 文件名
                 * data 需要写入的内容 PHP_EOL表示换行
                 * flags FILE_APPEND代表文件尾内容追加,默认是覆盖原先内容
                 * context 修改文件属性
                 * */
                file_put_contents('timing.txt',$a.PHP_EOL,FILE_APPEND);
                $a++;
                /*
                 * 延迟执行代码
                 * sleep()单位秒
                 * usleep()微妙
                 * */
                sleep(3);
            }while(true);
        }

    缺点: 启动之后,便无法控制, 除非终止 PHP 宿主,占系统资源, 长时间运行.

    2.环境设置定时(Linux的crontab 和window 下的)

      Linux的crontab

        crontab默认情况下是不执行开启日志的,所以开始写完定时后是查看不了日志,不易判断是否有执行定时任务。因此先开启定时任务的日志记录

      修改rsyslog服务,将/etc/rsyslog.d/50-default.conf的 #cron.* 前的 # 去掉;用以下命令重启rsyslog服务

    service rsyslog restart

      然后在重启crontab服务

    service cron restart

    配置完日志后开始写定时任务

      用户的定时文件保存在 /var/spool/cron/crontabs 目录下,并且以当前用户的名字命名;

    编辑当前用户的定时任务
    crontab -e
    
    列出当前用户cron服务的详细内容
    crontab -l

     定时任务可以执行访问URL 和 脚本

     

     该指令是每分钟访问一次 指定的url;  

     crontab的格式讲解

      用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,他的格式共分为6个字段,前5个字段是时间设定段,第六段是要执行的命令段。格式如下:

      minute hour day month week command

     其中:

        minute:表示分钟,0-59任何整数

        hour:表示小时,0-23任何整数

        day:表示日期,1-31整数

        month:月份,1-12整数

        week:星期几,0-7,这里0和7代表星期日

        command:要执行的命令,可以使系统命令,也可以是自己编写的脚本文件

    shell脚本文件的书写

      

  • 相关阅读:
    HDU 4069 Squiggly Sudoku
    SPOJ 1771 Yet Another NQueen Problem
    POJ 3469 Dual Core CPU
    CF 118E Bertown roads
    URAL 1664 Pipeline Transportation
    POJ 3076 Sudoku
    UVA 10330 Power Transmission
    HDU 1426 Sudoku Killer
    POJ 3074 Sudoku
    HDU 3315 My Brute
  • 原文地址:https://www.cnblogs.com/vincePp/p/7727988.html
Copyright © 2011-2022 走看看