Crocodile是一款开源的分布式任务调度系统,基于 Go 语言开发,遵守MIT开源协议。Crocodile支持http、golang、python、shell、python3、nodejs、bat等调度任务, 支持多调度中心,可实时查看任务运行日志与状态、自定义报警策略、账户权限管理等功能。

 

功能特色:

  • 多调度中心、多Worker运行
  • 在Web节点对任务进行增加、修改、删除、克隆、运行任务、终止任务等操作
  • 实时查看正在运行的任务、任务的实时日志和任务状态
  • 多种任务类型:
    • 执行http请求任务
    • 运行shellpythongolangpython3nodejs代码(当然其他语言也可以支持,如需要请提出)
  • 父、子任务:
    当设置了父任务或者子任务后,先会运行父任务->主任务->子任务,任意任务出错后会立即中断整个流程,还可以设置父任务或子任务并行或者串行运行
  • 调度算法:
    支持四种调度算法随机、轮训、Worker权重、Worker最少任务数来调用Worker运行任务,
  • 自定义报警策略:
    可以设置当任务成功失败、或者运行完成后报警给多个用户
    设置任务的返回码或者返回内容来比较任务的实际返回码或者返回内容是否相同来判断任务运行成功或者,code任务默认为0,http任务默认为200
  • 主机组:
    一个任务只可以绑定到任意一个主机组,任务的运行会通过任务的路由策略来选取这个主机组中的一个任务来运行任务
  • 主机:
    一个主机组可以绑定多个主机,主机是实际运行任务的节点,注册后调度中心自动发现
  • 安全策略
    证书加密(可关闭)
    密钥认证(必选,防止未授权Worker节点接入)
  • 任务的日志管理,清理日志
  • 报警通知支持平台
    • 邮件
    • 企业微信
    • 钉钉
    • Slack Channel
    • Telegram Bot
    • WebHook URL
  • 详细的操作审计功能
  • 权限控制
    有三种用户类型

    • 管理员
      拥有所有操作权限,
    • 普通用户 可以创建新的任务、主机组,可以对自已创建的任务或主机组进行操作,不能查看审计记录、所有用户
    • 访客
      只有查看的权限、无任何操作修改权限,不能查看审计记录、所有用户

源码:https://github.com/labulakalia/crocodile