{"repo":"dromara/disjob","free":true,"listed":false,"github":"https://github.com/dromara/disjob","clone":"git clone https://github.com/dromara/disjob.git","description":"A distributed job scheduling and distributed computing framework","language":"Java","stars":348,"topics":["scheduler","job","task","distributed","discovery","registry"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"一款分布式的任务调度与分布式计算框架 在线演示： http://ponfee.cn:8000/ --- 简体中文 English 一款分布式的任务调度与分布式计算框架，除了具备常规的任务调度功能外，还提供暂停/取消运行中的任务、恢复执行已暂停的任务、任务分片、失败重试、广播任务、任务依赖、工作流任务(DAG)、管理器与执行器分离部署、Web管理后台等能力。 轻量级，简单易用，特别适合长任务的执行。功能强大，稳定可靠，历经生产检验。 Architecture - 整体流程 - 代码结构 Features - 分为管理器(Supervisor)和执行器(Worker)两种角色，Supervisor与Worker可分离部署 - Supervisor与Worker通过注册中心相互发现，支持的注册中心有：Database、Redis、Consul、Nacos、Zookeeper、Etcd - Supervisor负责生成任务，把任务派发给Worker执行 - 需要指定Job的分组(group)，Job的任务只会派发给指定组的Worker执行 - 提供任务分片的能力，重写拆分方法JobSplitter#split即可拆分为多个任务，实现分布式任务及并行执行 - 支持暂停和取消运行中的任务，已暂停的任务可恢复继续执行，执行失败的任务支持重试 - 支持任务保存(Savepoint)其执行状态，让手动或异常暂停的任务能从上一次的执行状态中恢复继续执行 - 任务在执行时若抛出PauseTaskException，会暂停对应实例下的全部任务(包括分派到其它worker机器的任务) - 支持广播任务，广播任务会派发给group下的所有worker执行 - 支持Job间的父子依赖，多个Job配置好依赖关系后便会按既定的依赖顺序依次执行 - 支持DAG工作流，可把 jobExecutor 配置为复杂的DAG表达式，如：A- B,C,(D- E)- F,G- H - 支持执行中的Task在Worker(服务)发布完成后自动恢复继续执行(见 shutdown strategy 配置) - 提供Web管理后台，通过用户界面进行作业配置，任务监控等 Comparison Quartz Elastic-Job Xxl-Job Disjob -------------- ---------- ----------------- ---------------------- ---------------------------------------- 触发类型 Cron Cron Cron、固定频率、父子依赖 Cron、指定时间、固定频率、固定延时、父子依赖 任务编排 无 无 无 DAG表达式 任务分片 无 静态分片 广播任务 广播任务、动态分片 停止与恢复 无 无 终止运行中的任务 暂停执行中的任务、恢复执行已暂停的任务 保存执行数据 无 无 无 有 失败重试 无 失效转移 有 有 后台管理 无 有 有 有 监控告警 无 邮件 邮件 邮件、钉钉、企业微信、飞书、短信等 Download From Maven Central Build From Source Versions Disjob version Git branch Spring-boot version JDK version ---------------- ------------- ------------------------- ----------------- 2.2.5 2.2.x 2.7.18 8 3","default_branch":null,"files":null,"tree":[],"storefront":"/r/dromara","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/dromara/disjob/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}