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

  • 相关阅读:
    20191003 尚硅谷Spring Cloud教学视频
    20190928 On Java8 第二十三章 注解
    C# 输出结果有System.Byte[]
    linux 命令
    用go run命令启动main package中的多个文件
    Docker使用入门
    Go实现mqtt服务
    MongoDB的Go语言驱动注意点
    Go实现发送解析GET与POST请求
    用Go实现RabbitMQ消息收发
  • 原文地址:https://www.cnblogs.com/xiaoyuxixi/p/12158068.html
Copyright © 2011-2022 走看看