Gocron定时任务管理系统

你还在一台台机器去查看你的`cron`任务么,如果是的话,那么你就Out啦,今天主要介绍的是一个Go语言开发的Cron管理工具,在Github上是开源的项目

开源地址:https://github.com/ouqiang/gocron

1:介绍

使用Go语言开发的轻量级定时任务集中调度和管理系统, 用于替代Linux-crontab

2:功能特性

1:Web界面管理定时任务
2:crontab时间表达式, 精确到秒
3:任务执行失败可重试
4:任务执行超时, 强制结束
5:任务依赖配置, A任务完成后再执行B任务
6:账户权限控制文章来源(Source):https://www.dqzboy.com
7:任务类型
	7.1:shell任务
		- 在任务节点上执行shell命令, 支持任务同时在多个节点上运行
	7.2:HTTP任务
		- 访问指定的URL地址, 由调度器直接执行, 不依赖任务节点
8:查看任务执行结果日志
9:任务执行结果通知, 支持邮件、Slack、Webhook

支持平台:Windows、Linux、Mac OS

3:安装部署

3.1:部署MySQL

1:部署源
cat << eof>> /etc/yum.repos.d/mysql.repo
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
eof

2:安装MySQL
yum install -y mysql-community*

3:启动数据库
systemctl enable mysqld --now

4:修改数据库密码
MYSQLPD=$(cat /var/log/mysqld.log | grep 'password' | awk '{print $11}')
mysql -uroot -p$MYSQLPD

# 密码验证策略低要求
set global validate_password_policy=0; (0或LOW代表低级)
# 密码至少要包含的小写字母个数和大写字母个数
set global validate_password_mixed_case_count=0;
# 密码至少要包含的数字个数
set global validate_password_number_count=0;
# 密码至少要包含的特殊字符数
set global validate_password_special_char_count=0;
# 密码长度
set global validate_password_length=3;
# 设置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

5:创建数据库
CREATE DATABASE `gocron` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

3.2:安装Gocron

image

1:下载程序

这里我们需要下载两个程序包,一个是主程序,另一个是node节点需要安装的程序,如果觉得github下载慢,我们可以使用如下链接

https://hub.fastgit.xyz/ouqiang/gocron/releases/download/v1.5.3/gocron-v1.5.3-linux-amd64.tar.gz
https://hub.fastgit.xyz/ouqiang/gocron/releases/download/v1.5.3/gocron-node-v1.5.3-linux-amd64.tar.gz

gocron-node-v1.5.3-linux-amd64.tar.gz  gocron-v1.5.3-linux-amd64.tar.gz

2:安装Golang(其实也可以不下载)
yum install -y golang

3:解压
tar xf gocron-v1.5.3-linux-amd64.tar.gz -C /usr/local/
mv /usr/local/gocron-linux-amd64 /usr/local/gocron

4:后台启动
nohup /usr/local/gocron/gocron web >/tmp/gocron.log 2>&1 &

5:web端口为5920,我们可以测试访问了

image

根据配置填写信息

image

登录之后如下图

image

4:安装节点

如果执行方式为shell时,必须在所需执行的主机节点上安装部署gocron-node才可以,默认监听端口为5921
注意:启动节点不允许通过root账号启动,需创建一个普通用户

1:传递节点包到节点服务器上
scp gocron-node-v1.5.3-linux-amd64.tar.gz root@10.0.0.11:/root/
tar xf gocron-node-v1.5.3-linux-amd64.tar.gz -C /usr/local/
mv /usr/local/gocron-node-linux-amd64 /usr/local/gocron_node

2:创建用户
useradd gocron

3:授权用户并启动服务
chown -R gocron. /usr/local/gocron_node/
# 用普通用户来启动服务
su - gocron -c "nohup /usr/local/gocron_node/gocron-node > /tmp/gocron-node.log 2>&1 &"

netstat -nplt | grep 5921
tcp6       0      0 :::5921                 :::*                    LISTEN      1278/gocron-node

5:添加节点

image

image

image

6:加入任务

image

image

image

image

image

image

因为这个程序它不依赖我们服务器的`cron`,所以这个自定义性和管理性是非常的高的,只是看起来好久没有维护了,大家可以根据自己的需求决定是否需要这个程序。
posted @ 2022-08-25 05:45  Layzer  阅读(2275)  评论(0编辑  收藏  举报