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

      

  • 相关阅读:
    微信小程序保存图片功能实现
    小程序清除缓存功能如何实现
    小程序自定义函数—数字千位转换
    小程序身份证号检测函数
    小程序 的 textarea 组件 层级问题如何解决
    Markdown 语法背一下咯
    跨域了解一下?
    sort命令的k选项大讨论【转】
    Shell脚本中实现切换用户并执行命令操作【转】
    Ansible Tower系列 四(使用tower执行一个命令)【转】
  • 原文地址:https://www.cnblogs.com/vincePp/p/7727988.html
Copyright © 2011-2022 走看看