• gocron定时任务的安装与运行详解


    1、安装Go

    使用go程序必须先有go,Linux下的安装

    yum install go

    查看安装版本

    go version

    2、下载gocron

    gocron需要使用下载gocron和gocron-node

    这里采用二进制文件的方式安装,因为go已经把源码打包成了可执行文件,下载下来直接运行就可以了,不需要自己去编译和配置依赖

    下载执行文件的地址是:

    https://github.com/ouqiang/gocron/releases

    看清楚自己的系统,需要下载gocron和gocron-node两个包,gocron是web配置平台,gocron-node是需要在想要执行任务的节点服务器部署的程序

    下载的时候有时候速度比较慢,多试几次就可以了

    wget https://github.com/ouqiang/gocron/releases/download/v1.5.2/gocron-v1.5.1-linux-amd64.tar.gz
    wget https://github.com/ouqiang/gocron/releases/download/v1.5.2/gocron-node-v1.5.1-linux-amd64.tar.gz

    3、解压

    选择合适的目录解压,解压命令:

    tar -xvf gocron-v1.5.1-linux-amd64.tar.gz

    tar -xvf gocron-node-v1.5.1-linux-amd64.tar.gz

    我解压的位置在wwwroot下,如果想换位置,可以是用复制的方法复制到指定目录,然后再解压,或是先进入到指定目录,然后再该目录中解压

    4、运行

    分别进入gocron和gocron-node目录中运行:

    启动gocron(为了安全,不使用root执行,而使用用户www来执行):

    sudo -u www ./gocron-v1.5.1-linux-amd64/gocron web

    启动gocron-node(不允许使用root执行,如果使用的是root执行则会失败):

    sudo -u www ./gocron-node-v1.5.1-linux-amd64/gocron-node

    安装时发现启动上述程序,不管启动哪个,都不能按Ctrl + C来终止或关闭SSH客户端,否则直接退出。

    5、换成后台脚本运行

    创建gocron的shell脚本run.sh,gocron目录及相关文件截图

    脚本run.sh:

    #!/bin/bash
    #启动gocron
    cd /data/wwwroot/gocron/gocron-linux-amd64
    sudo -u www bash -c 'nohup ./gocron web &'
    

    创建gocron-node的shell脚本run.sh,gocron-node目录及相关文件截图

    #!/bin/bash
    #启动gocron-node
    cd /data/wwwroot/gocron/gocron-node-linux-amd64
    sudo -u www bash -c 'nohup ./gocron-node &'
    

    修改文件权限,run.sh需要执行权限

    chmod -R 777 run.sh

    修改指定文件所属权限组,例如

    chown -R www:www run.sh

    返回到/data/wwwroot/gocron/目录,脚本运行gocron和gocron-node

    source ./gocron-linux-amd64/run.sh
    source ./gocron-node-linux-amd64/run.sh
    

    已成功启动gocron和gocron-node

    说明(上述使用source执行的原因):当shell执行脚本的时候,它会开启一个子shell,目录跳转命令只会在这个子shell中执行,并不会影响到父shell。要想在父shell中实现目录的跳转,需要用source来执行脚本。

    其他说明:上述run.sh脚本中的bash -c 的使用方法及注意事项
    用法:bash -c “cmd string”
    通常使用shell去运行脚本,两种方法 bash xxx.sh,另外一种就是bash -c “cmd string”
    对于bash xxx.sh, 首先bash 会在当前目录去寻找xxx.sh,如果找到,就直接运行,找不到则按照环境变量$PATH的指定路径,按顺序去找,如果找到,则执行,找不到则报错。
    shell脚本的参数$0就是要执行的shell脚本xxx.sh, $1就是后面紧跟xxx.sh的参数,$2 $3依次类推

    详细说明请查看【Linux中的bash -c 使用详解】

    6、登录

    打开web界面
    从上面可以看到gocron默认监听的是5920端口,通过浏览器访问:http://localhost:5920 或http://服务器ip:5920 便可以打开web管理窗口

    首页打开需要进行一些安装配置

    安装完成后会跳转到登录界面


    添加任务节点
    这里的每个定时任务都需要在一个任务节点下,因此想要添加一个定时任务需要先添加一个任务节点,示例如下:


    添加定里任务
    这里按照以下图片进行添加即可:


    7、优化

    由于脚本中使用到了nohup,所以在run.sh目录会生成nohup.out日志文件,随着时间的推移,此文件会越来越多,最后可能会占用一大部分空间。可以通过改变nohup输出方式来优化,具体请查看Linux nohup不输出日志文件的方法

    8、执行脚本随服务器启动设置

    直接在服务器中的脚本/etc/rc.d/rc.local(和/etc/rc.local是同一个文件,软链)末尾添加自己的脚本。

    然后,增加执行权限chmod +x /etc/rc.d/rc.local。

    具体操作请参考:Linux服务器开机自动启动服务或脚本的方法

  • 相关阅读:
    java常用容器简要性能分析(List。Map。Set)
    初始化 List 的五种方法(java)【转】
    线程池方式对数组多线程随机取出分析
    Spring文件下载方式整理
    阿里云linux安装Consul启动
    Java字节流&字符流的转换
    VUE中字符串实现JSON格式化展示。
    java中URL作为参数前后端传递分析
    Java实现GBK转码到UTF-8(文件)
    python处理Excel文件
  • 原文地址:https://www.cnblogs.com/dnfhao/p/15049157.html
Copyright © 2020-2023  润新知