cronsun分布式任务系统

联合创作 · 2023-10-01 19:44

cronsun 是一个分布式任务系统,单个结点和 *nix 机器上的 crontab 近似。支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 crontab 一个不错的选择。

cronsun 是为了解决多台 *nix 机器上crontab 任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死机的时候可以自动调度到正常的节点执行)。

特性

  • 方便对多台服务器上面的定时任务进行集中式管理
  • 任务调度时间粒度支持到级别
  • 任务失败自动重试
  • 任务可靠性保障(从N个节点里面挑一个可用节点来执行任务)
  • 简洁易用的管理后台,支持多语言
  • 任务日志查看
  • 任务失败邮件告警(也支持自定义http告警接口)
  • 用户验证与授权 (默认账号密码: admin@admin.com / admin)
  • 可靠性说明

架构

                                                [web]
                                                  |
                                     --------------------------
           (add/del/update/exec jobs)|                        |(query job exec result)
                                   [etcd]                 [mongodb]
                                     |                        ^
                            --------------------              |
                            |        |         |              |
                         [node.1]  [node.2]  [node.n]         |
             (job exec fail)|        |         |              |
          [send mail]<-----------------------------------------(job exec result)

安全性

cronsun 是在管理后台添加任务的,所以一旦管理后台泄露出去了,则存在一定的危险性,所以cronsun支持security.json的安全设置:

{
    "open": true,
    "#users": "允许选择运行脚本的用户",
    "users": [
        "www", "db"
    ],
    "#ext": "允许添加以下扩展名结束的脚本",
    "ext": [
        ".cron.sh", ".cron.py"
    ]
}

如上设置开启安全限制,则添加和执行任务的时候只允许选择配置里面指定的用户来执行脚本,并且脚本的扩展名要在配置的脚本扩展名限制列表里面。 

浏览 3
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报