1. 博客/

Gocron 实践安装,实现统一定时任务管理平台

·599 字·2 分钟· ·
centos linux gocron docker
Johny
作者
Johny
熟练的 云原生搬砖师
Table of Contents

部署环境说明
#

  • 操作系统: CentOS release 7.8.2003
  • Gocron Version: v1.5.3
  • Mysql Version: 5.5

Gocron 说明
#

gocron 是使用 go 语言开发的轻量级定时任务集中调度和管理系统, 可以用于替代 linux-crontab。

项目 github 地址

manage 端安装配置
#

在 Gocron 中数据的存储是放置在 mysql 数据库中的,我们这里需要配置一下 MySQl 的使用环境及权限。如果数据库已经事先安装,那么就只需要添加对应的库和用户使用权限即可。

手动使用二进制进行安装
#

  • 下载对应版本安装包

    wget https://github.com/ouqiang/gocron/releases/download/v1.5.3/gocron-node-v1.5.3-linux-amd64.tar.gz # 下载对应压缩包
    
    # 解压 复制文件到指定文件夹下 进行使用
    tar xf gocron-v1.5.3-linux-amd64.tar.gz  
    cd gocron-linux-amd64/
    \cp -a gocron /usr/local/bin/
    
    gocron -v
    
  • 配置为服务并设置自启动

    管理端启动后,服务默认监听端口是在 tcp 至上的 5920 端口

    mkdir -p /application/gocron-manage
    cat > /usr/lib/systemd/system/gocron-manage.service << EOF
    [Unit]
    Description=gocron web manage
    Documentation=https://github.com/ouqiang/gocron
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/usr/local/bin/gocron web
    Restart=on-failure
    WorkingDirectory=/application/gocron-manage
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
  • 启动 manage 端并设置开机自启动

    systemctl start gocron-manage.service \
    && systemctl status gocron-manage.service \
    && systemctl enable gocron-manage.service
    

数据库的连接初始化
#

  • 创建程序连接数据库的对应用户使用权限

    CREATE DATABASE `gocron` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; # 创建 程序连接数据库
    
    grant all on `gocron`.* to cron_app@'%' identified by 'xMPJ8Xkv1'; # 创建程序使用用户,并将对应库权限授予此用户进行使用
    
    flush privileges;
    

image-20201026105133322.png

agent/node 端安装配置
#

手动使用二进制进行安装
#

  • 安装准备

    wget https://github.com/ouqiang/gocron/releases/download/v1.5.3/gocron-node-v1.5.3-linux-amd64.tar.gz # agent
    
    tar xf gocron-node-v1.5.3-linux-amd64.tar.gz \
    && cd gocron-node-linux-amd64 \
    && cp gocron-node /usr/local/bin  # 添加至环境变量中
    
    gocron-node --version # 测试效果
    
  • 配置为服务并设置开机自启动

    mkdir -p /application/gocron-agent
    cat > /usr/lib/systemd/system/gocron-agent.service << EOF
    [Unit]
    Description=gocron agent/node server
    Documentation=https://github.com/ouqiang/gocron
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/usr/local/bin/gocron-node -allow-root
    WorkingDirectory=/application/gocron-agent
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    # 设置开机自启动
    systemctl start gocron-agent.service \
    && systemctl status gocron-agent.service \
    && systemctl enable gocron-agent.service
    

    注意agent端 默认监听在 tcp 协议上的 5921 (–help 查看帮助文档 修改端口)

问题记录
#

日志提示主机名称过长
#

具体日志表现如下所示:

image-20201026142218684

  • 解决方法,就是更改对应 表结构,进行解决。

    ALTER TABLE cron_task_log MODIFY hostname text NOT NULL ;
    

To Do
#

相关文章

Centos7 安装之后必要的初始化操作
·1349 字·3 分钟·
linux centos centos7 docker linux
使用 Docker-Compose 部署 openConnect Vpn Server
·793 字·2 分钟·
linux network openconnect docker-compose openldap
Git 使用问题的记录
·322 字·1 分钟·
devops linux git
OpenVpn 的安装,并配置关联 openLdap 认证
·953 字·2 分钟·
linux network openvpn install
Centos7 执行 shutdown 无法正常关机的解决
·468 字·1 分钟·
linux centos7 shell
Raid 阵列卡 Megacli 管理工具的使用记录
·211 字·1 分钟·
linux raid stroage