1 Star 0 Fork 2

stone hui / golang-cknit

forked from Josin / golang-cknit 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 3.16 KB
一键复制 编辑 原始数据 按行查看 历史
liqiongfan 提交于 2020-08-26 19:21 . 修复更新不生效的bug

golang-cknit

介绍

使用 GoLang 语言编写的秒级定时器,支持秒级和分钟级别定时器和任务管理,并且可以保证在机器硬盘没问题的情况下保证数据安全落地

应用场景

在各个公司里面都有各种类型的定时任务需求,而 golang-cknit就是为了解决这个问题而诞生的,结合作者本身的工作经历会逐渐丰富此软件的功能,如:支持定时任务的参数等

软件架构

延续了 C 语言版本的 cknit 的特点,采用 golanggoroutine 特性完成任务调度问题,并且支持通过API接口操作定时任务

发布日志

版本 内容
v1.0 提供持久化和接口处理定时任务,不支持分布式
v2.0 分布式支持

安装教程

  1. 安装 golang 环境

Debian系:

apt install golang -y

CentOS 系:

yum install golang -y

  1. 编译和安装

    git clone https://gitee.com/josinli/golang-cknit.git

    cd golang-cknit

    go build -o cknit main.go

    cp -r main /usr/bin/cknit

定时规则

定时器采用 crontab 格式的定时规则,具体规则细则如下:

表达式 规则
* 表示都成立
*/1 表示每隔1单位成立
12,3 表示等于12和3的时候成立
1-3,4 表示1到3和4都成立

golang-cknit 支持两种条件的定时规则:

* * * * * : 由四个空格隔开的条件,组成的

以及由五个空格隔开:

* * * * * *

APIs说明

  1. 添加定时任务:
端口 8080
请求方法 POST
请求包体数据 JSON
请求URL http://your_ip:8080/do
{
    "id":2,
    "name":"同步定向包",
    "val":"* * * * * *",
    "app":"/usr/bin/php /Users/josin/Desktop/php.php"
}
  1. 修改任务
端口 8080
请求方法 PUT
请求包体数据 JSON
请求URL http://your_ip:8080/do
{
    "id":3,
    "name":"同步定向包",
    "val":"* * * * * *",
    "app":"/usr/bin/php /Users/josin/Desktop/php.php"
}
  1. 删除任务
端口 8080
请求方法 DELETE
请求包体数据 JSON
请求URL http://your_ip:8080/do
{
    "id":2,
    "name":"同步定向包",
    "val":"* * * * * *",
    "app":"/usr/bin/php /Users/josin/Desktop/php.php"
}
  1. 查询当前的所有定时任务
端口 8080
请求方法 GET
请求包体数据 JSON
请求URL http://your_ip:8080/do
[
  {
    "id":1,
    "name":"同步定向包",
    "val":"* * * * * *",
    "app":"/usr/bin/php /Users/josin/Desktop/php.php"
  }
]
Go
1
https://gitee.com/stone_hui/golang-cknit.git
git@gitee.com:stone_hui/golang-cknit.git
stone_hui
golang-cknit
golang-cknit
master

搜索帮助