cronsun

分布式任务系统
授权协议 Apache
开发语言 Google Go JavaScript
所属分类 企业应用、 任务/项目管理
软件类型 开源软件
地区 国产
投 递 者 甄煜
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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"
    ]
}

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

  • 创建dockerfile FROM alpine:3.12 RUN apk add --no-cache tzdata \ && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezone ADD cronsun-v0.3.5-linux-am

  • cronsun: 是一个分布式任务系统,单个节点和 Linux 机器上的 crontab 近似.是为了解决多台 Linux  机器上 crontab 任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死机的时候可以自动调度到正常的节点执行).支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 crontab 一个不错的选择. 环境: VM centos7(192.1

  • 原标题:使用 cronsun 管理多台机器上的 crontab 任务 cronsun 是一个分布式任务系统,单个结点和 Linux 机器上的 crontab 近似。支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 crontab 一个不错的选择。 cronsun 是为了解决多台 Linux 机器上crontab 任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死

  • cronsun: 是一个分布式任务系统,单个节点和 Linux 机器上的 crontab 近似.是为了解决多台 Linux  机器上 crontab 任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死机的时候可以自动调度到正常的节点执行).支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 crontab 一个不错的选择. 环境: VM centos7  etcd

  • 官方文档:https://github.com/shunfei/cronsun/wiki 几种常用的工具对比https://blog.csdn.net/ra681t58cjxsgckj31/article/details/78851749 cronsun依赖mongo和etcd,因为etcd的docker镜像(elcolio/etcd)已经3年没有更新了,所以mongo通过docker部署,etc

  • e.g: {    "Enable": true,     "To": ["xxxxx@qq.com"],     "#HttpAPI": "如有此字段,则按 http api 方式发送",     "#Keepalive": "如果此时间段内没有邮件发送,则关闭 SMTP 连接,单位/秒",     "Keepalive": 60,     "#doc": "https://godoc.org/

 相关资料
  • 在这最后一章中,我们将回到:kv应用程序,给它添加一个路由层,使之可以根据桶的名字,在各个节点间分发请求。 路由层会接收一个如下形式的路由表: [{?a..?m, :"foo@computer-name"}, {?n..?z, :"bar@computer-name"}] 路由者(负责转发请求的角色,可能是个节点)将根据桶名字的第一个字节查这个路由表, 然后根据路由表所示将用户对桶的请求发给相应

  • ShardingSphereTransactionManager SPI 名称 详细说明 ShardingSphereTransactionManager 分布式事务管理器 已知实现类 详细说明 XAShardingSphereTransactionManager 基于 XA 的分布式事务管理器 SeataATShardingSphereTransactionManager 基于 Seata 的分

  • ShardingSphere-Proxy 接入的分布式事务 API 同 ShardingSphere-JDBC 保持一致,支持 LOCAL,XA,BASE 类型的事务。 XA 事务 ShardingSphere-Proxy 原生支持 XA 事务,默认的事务管理器为 Atomikos。 可以通过在 ShardingSphere-Proxy 的 conf 目录中添加 jta.properties 来定

  • 通过 Apache ShardingSphere 使用分布式事务,与本地事务并无区别。 除了透明化分布式事务的使用之外,Apache ShardingSphere 还能够在每次数据库访问时切换分布式事务类型。 支持的事务类型包括 本地事务、XA事务 和 柔性事务。可在创建数据库连接之前设置,缺省为 Apache ShardingSphere 启动时的默认事务类型。

  • 背景 数据库事务需要满足 ACID(原子性、一致性、隔离性、持久性)四个特性。 原子性(Atomicity)指事务作为整体来执行,要么全部执行,要么全不执行。 一致性(Consistency)指事务应确保数据从一个一致的状态转变为另一个一致的状态。 隔离性(Isolation)指多个事务并发执行时,一个事务的执行不应影响其他事务的执行。 持久性(Durability)指已提交的事务修改数据会被持久

  • 单文档原子性可满足大多数业务需求 在 MongoDB 中,对单个文档的操作是原子操作。 由于 MongoDB 文档数据模型,一个文档中通过嵌入式的文档和数组来表示传统关系数据库模型中的一对一、一对多关系,而不是通过文档之间的复杂关系来描述业务需求中的一对一、一对多关系。 所以单文档原子性可以满足实际生产中大多数关于事务的需求。 对于需要对多个文档(在单个或多个集合中)进行原子读写的情况,Mongo