1 Star 1 Fork 0

dpwgc / smallscheduler

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Small Scheduler

一个基于 Go + MySQL 的分布式定时任务调度平台

特点

  • 无状态分布式服务,只依赖 MySQL 数据库,部署流程简单,通过乐观锁控制并发,确保同一时刻同一任务只会被一个服务实例执行
  • 使用HTTP Webhook触发任务,无代码侵入,支持GETPOSTPUTPATCHDELETE方法,支持自定义请求体与请求头
  • 自带网页控制台,可视化配置定时任务,支持设置调度失败重试规则(最大重试次数、重试间隔时间)及备用HTTP调度地址
  • 支持存储与查询各任务的调度记录,按年月划分,自动分表
  • 支持健康检查及平滑关闭服务

index task record


使用方式

  • 编辑项目配置文件 config.yaml,一般只用改数据库配置,其他配置默认即可
  • 运行 main.go 启动程序,默认http服务端口为9088
  • 访问网页控制台 http://localhost:9088/v1/web/
  • 在网页上配置与管理定时任务

编译并运行

源代码编译

go build main.go

将编译后生成的可执行文件main与配置文件config.yaml、页面文件夹web放在同一目录下

  • 运行目录
    • main
    • config.yaml
    • web
      • css
      • js
      • index.html

Mac/Linux环境下运行

cd 到运行目录,执行命令

./main

Windows环境下运行

双击main.exe运行程序


后台接口

实例健康检查接口

GET http://localhost:9088/v1/health

  • 正常情况:HTTP状态码返回200
  • 正在等待关闭服务:HTTP状态码返回400

平滑关闭实例接口

GET http://localhost:9088/v1/shutdown?wait=10

  • 该接口仅限本机调用(只能使用localhost127.0.0.10.0.0.0这三个hostname访问)
  • 参数 wait : 等待关闭时间(单位-秒),必须大于0
  • 调用shutdown接口后,会在等待一段时间后关闭该实例,等待期间只会继续执行那些已经在执行过程中的任务,不会再加载新的任务(避免正在运行的任务突然被打断)
MIT License Copyright (c) 2023 dpwgc Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

一个基于Go+MySQL的分布式任务调度平台 展开 收起
Go 等 2 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/dpwgc/smallscheduler.git
git@gitee.com:dpwgc/smallscheduler.git
dpwgc
smallscheduler
smallscheduler
master

搜索帮助