zoukankan      html  css  js  c++  java
  • 秒级别执行脚本的方法

    前言:

      crond服务提供分钟级的定时任务,但有的应用场景需要秒级的执行脚本,比如不稳定的应用程序,或者需要高可用的服务等等,整理测试后,有两种办法:1.使用while写一个死循环,并将脚本放入后台执行。2.使用sleep,根据脚本的需求来进行crontab的修改。

    第一种办法:

    #!/bin/bash
    while true;do
            echo "hahaha"
            sleep 1
    done

      放入后台执行的方法为,在执行脚本的命令后面加上&符号就行

    第二种办法:

    使用sleep与crontab结合起来:

    */1 * * * * root /script/mstest.sh
    */1 * * * * root sleep 5;/script/mstest.sh
    */1 * * * * root sleep 10;/script/mstest.sh
    */1 * * * * root sleep 15;/script/mstest.sh
    */1 * * * * root sleep 20;/script/mstest.sh
    */1 * * * * root sleep 25;/script/mstest.sh
    */1 * * * * root sleep 30;/script/mstest.sh
    */1 * * * * root sleep 35;/script/mstest.sh
    */1 * * * * root sleep 40;/script/mstest.sh
    */1 * * * * root sleep 45;/script/mstest.sh
    */1 * * * * root sleep 50;/script/mstest.sh
    */1 * * * * root sleep 55;/script/mstest.sh

      如上所示,每5s执行一次。需要注意的是,上面的配置是修改/etc/crontab文件的,使用/etc/crontab需要使用加上用户名,而crontab –e 则不需要,redhat系统每分钟定时设置为 * * * * * 而ubuntu为*/1 * * * *

    总结:

      相对来说还是第二种方法比较可靠,crontab服务在每次系统重新启动的时候都会自动加载配置文件,而第一种办法需要手动启动,并且不好检查,当然,这种方式对需要暂停脚本的情况来说又不友好了,想了一个办法:修改脚本的名称,而后需要启动脚本的时候,将脚本的名称可以改回来。

  • 相关阅读:
    IE8兼容
    游标
    WARN No appenders could be found for logger (org.springframework.orm.hibernate3.support.OpenSessionInViewFilter)
    sql server 备份数据
    JS页面打印
    jQuery Mobile 入门教程
    jquerymobile入门(文件引用+多页面)
    定位和可见性
    二月份总结
    mailto用法
  • 原文地址:https://www.cnblogs.com/xiaoyuxixi/p/12158068.html
Copyright © 2011-2022 走看看