栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

gocron 高可用部署 linux 持续更新

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

gocron 高可用部署 linux 持续更新

架构图

Gocron 介绍

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

项目地址

环境介绍
服务器应用
172.18.138.10gocron-web nginx
172.18.35.144gocron-web
172.18.138.4gocron-node

操作系统:centos 7.9
gocron version:v1.5.3

安装包如下
gocron-web
gocron

10 144 服务器安装gocron-web
  1. 下载gocron-web
wget http://8.210.62.122/gocron/gocron-v1.5.3-linux-amd64.tar.gz
tar xzvf gocron-v1.5.3-linux-amd64.tar.gz -C /usr/local/services/
cd /usr/local/services/gocron-linux-amd64
[yingjian@iZwz9b8x8l2oe511fss4qfZ gocron-linux-amd64]$ ./gocron -v
gocron version 
   Version: v1.5.3
Go Version: go1.13
Git Commit: 93c544f
     Built: 2020-02-20 21:23:25
   OS/ARCH: linux/amd64
  1. systemd管理gocron-web
[yingjian@iZwz9b8x8l2oe511fss4qfZ gocron-linux-amd64]$ cat /usr/lib/systemd/system/gocron-web.service 
[Unit]
Description=gocron web manage
Documentation=https://github.com/ouqiang/gocron
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/services/gocron-linux-amd64/gocron web
Restart=on-failure
WorkingDirectory=/usr/local/services/gocron-linux-amd64

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl restart gocron-web  #启动
systemctl enable gocron-web #开机自启
systemctl status gocron-web #查看状态
创建数据库和对应的用户账号权限
CREATE DATABASE `gocron` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; # 创建 程序连接数据库

grant all on `gocron`.* to gocron@'%' identified by '******'; # 创建程序使用用户,并将对应库权限授予此用户进行使用

flush privileges;

访问 10 服务器5920端口
如下图所示配置数据库连接地址


144 服务器conf 配置

/usr/local/services/gocron-linux-amd64  #10服务器
[root@iZwz9b8x8l2oe511fss4qfZ gocron-linux-amd64]# ls
conf  gocron  log
[root@iZwz9b8x8l2oe511fss4qfZ gocron-linux-amd64]# cd conf/
[root@iZwz9b8x8l2oe511fss4qfZ conf]# ls
app.ini  install.lock

[root@iZwz9b8x8l2oe511fss4qfZ conf]# sz app.ini  #下载此文件后上传到144 服务器下的conf目录下

10 app.ini文件

144 app.ini文件

配置nginx 负载均衡gocron-web
cat nginx.conf 

    upstream gocron_web {
        server 172.18.138.10:5920;
        server 172.18.35.144:5920 backup;  #当10服务器不能提供服务时,请求才到144服务器上
    }
    server {
        listen  80;
        listen       443 ssl;
        server_name  cron.jinzjy.com;

        ssl_certificate      cert/3502__jinzjy.com.pem;
        ssl_certificate_key  cert/3502__jinzjy.com.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers  on;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location / {
            proxy_pass   http://gocron_web;
            proxy_set_header   Host    $host;
            proxy_set_header   X-Real-IP   $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_cookie_path  / /;
            proxy_set_header Cookie $http_cookie;
        }

    }

如图所示

4 服务器部署gocron-node

1.下载gocron-node

wget http://8.210.62.122/gocron/gocron-v1.5.3-linux-amd64.tar.gz
tar xzvf gocron-node-v1.5.3-linux-amd64.tar.gz -C /usr/local/services/
[yingjian@iZwz9c0rnhno789fl3ibk6Z src]$ cd /usr/local/services/gocron-node-linux-amd64/
[yingjian@iZwz9c0rnhno789fl3ibk6Z gocron-node-linux-amd64]$ ls
gocron-node  home_list.txt  nohup.out
[yingjian@iZwz9c0rnhno789fl3ibk6Z gocron-node-linux-amd64]$ ./gocron-node -v

   Version: v1.5.3
Go Version: go1.13
Git Commit: 93c544f
     Built: 2020-02-20 21:24:23
   OS/ARCH: linux/amd64
  1. systemd管理gocron-node
cat /usr/lib/systemd/system/gocron-node.service 
[Unit]
Description=gocron agent/node server
Documentation=https://github.com/ouqiang/gocron
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/services/gocron-node-linux-amd64/gocron-node -allow-root
WorkingDirectory=/usr/local/services/gocron-node-linux-amd64   #执行计划任务时当前目录
Restart=on-failure

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl restart gocron-node  #启动
systemctl enable gocron-node #开机自启
systemctl status gocron-node #查看状态
gocron-web 添加任务节点

配置邮件通知

相关报错处理

  1. gocron-node 执行计划任务time-out

    查看该任务 配置任务超时时间

本文参考:https://www.treesir.pub/post/gocron-install/
本文参考:http://www.xckey.com/952.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/942070.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号