1 Star 0 Fork 2

stone hui / golang-cknit

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

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"
  }
]
BSD 3-Clause License Copyright (c) 2020, Josin All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

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

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
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

搜索帮助