Gocron 实践安装,实现统一定时任务管理平台
文章目录
部署环境说明
- 操作系统:
CentOS release 7.8.2003
- Gocron Version:
v1.5.3
- Mysql Version:
5.5
Gocron 说明
gocron
是使用go
语言开发的轻量级定时任务集中调度和管理系统, 可以用于替代 linux-crontab。
manage 端安装配置
在 Gocron 中数据的存储是放置在
mysql
数据库中的,我们这里需要配置一下 MySQl 的使用环境及权限。如果数据库已经事先安装,那么就只需要添加对应的库和用户使用权限即可。
手动使用二进制进行安装
-
下载对应版本安装包
1 2 3 4 5 6 7 8
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
端口1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
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 端并设置开机自启动
1 2 3
systemctl start gocron-manage.service \ && systemctl status gocron-manage.service \ && systemctl enable gocron-manage.service
数据库的连接初始化
-
创建程序连接数据库的对应用户使用权限
1 2 3 4 5
CREATE DATABASE `gocron` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; # 创建 程序连接数据库 grant all on `gocron`.* to cron_app@'%' identified by 'xMPJ8Xkv1'; # 创建程序使用用户,并将对应库权限授予此用户进行使用 flush privileges;
agent/node 端安装配置
手动使用二进制进行安装
-
安装准备
1 2 3 4 5 6 7
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 # 测试效果
-
配置为服务并设置开机自启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
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 查看帮助文档 修改端口)
问题记录
日志提示主机名称过长
具体日志表现如下所示:
-
解决方法,就是更改对应
表结构
,进行解决。1
ALTER TABLE cron_task_log MODIFY hostname text NOT NULL ;