• 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脚本文件的书写

      

  • 相关阅读:
    Windows PowerShell 2.0之进程管理
    PowerShell 2.0远程管理之交互式远程线程
    PowerShell 2.0解析、格式化及显示远程输出
    PowerShell 2.0语言远程管理之理解线程配置
    PowerShell 2.0远程管理之隐式远程管理
    PowerShell 2.0如何将远程线程保存在本地
    Windows PowerShell 2.0之服务管理
    PowerShell 2.0远程管理开发使用CredSSP处理多跳授权
    通过PowerShell操作事件日志
    (译)Silverlight教程第七部分: 使用控件模板定制控件的观感
  • 原文地址:https://www.cnblogs.com/vincePp/p/7727988.html
Copyright © 2020-2023  润新知