前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >定时任务管理系统 gocron、cronsun

定时任务管理系统 gocron、cronsun

作者头像
lukachen
发布2024-01-13 09:50:28
2180
发布2024-01-13 09:50:28
举报
文章被收录于专栏:LukaChen BlogLukaChen Blog

项目开发中容易堆积较多定时脚本,最简单的是使用 crontab

但 crontab 存在较多缺点:

  • 默认不支持秒级
  • 任务管理分散,代码散落在各个机器,代码管理易丢失
  • 可观测性弱,需要在各个脚本中开发告警、推送逻辑
  • 查阅日志繁琐 等问题

通过调研有 cronsun、gocron 等任务调度开源项目

经初步了解,梳理两个项目特点和适用场景

shunfei/cronsun

项目地址:https://github.com/shunfei/cronsun

特点:分布式、注册机制、可靠性保证较强 适用场景:业务量级较大、资源较为丰富 资源与部署:cronweb、cronnode、Etcd、Mongo

可靠性说明 https://github.com/shunfei/cronsun/wiki/%E5%8F%AF%E9%9D%A0%E6%80%A7%E8%AF%B4%E6%98%8E

安装体验:TODO 遇到 docker-compose 部署问题,后续补上

ouqiang/gocron

项目地址:https://github.com/ouqiang/gocron 特点:轻量、配置简单易上手,存在单点问题 适用场景:业务量级适中、追求低资源运行、脚本允许出现可能得短期中断(单点) 资源与部署:gocron-node、gocron、MySQL

安装体验:

1.安装 项目自带 Docker 用于部署 gocron web 管理端

代码语言:javascript
复制
docker network create my_network
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 --network my_network -d mysql:latest
docker run --name gocron -p 5920:5920 --network my_network -d ouqg/gocron

2.初始化配置 通过上述步骤即可在本地部署 MySQL 和 gocron web 端,本地访问 http://localhost:5920/ mysql 去建个数据库,在 gocron web 后台输入 mysql 相关信息和系统登录管理员,即可完成系统初始化

3.任务配置 3.1 启动 gocron-node 任务节点 这里在本地 mac 编译好,并启动一个 gocron-node

代码语言:javascript
复制
git clone git@github.com:ouqiang/gocron.git
cd gocron
go mod tidy
make
./bin/gocron-node

3.2 配置任务节点 配置上述 mac 机启动的 gocron-node(容器访问宿主机,可用 host.docker.internal)

x
x

3.3 配置任务

x
x

3.4 配置告警 shell 类型,使用 exit 1 等非 0 退出,定义为执行失败,可对执行失败配置告警,这里企微比较常用,举例一下企微配置

x
x
x
x
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • shunfei/cronsun
  • ouqiang/gocron
    • 安装体验:
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档