PowerJob/README.md
2020-04-16 15:06:36 +08:00

39 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 简介
### 产品介绍
OhMyScheduler是一个分布式调度平台和分布式计算框架
* 支持CRON、固定频率、固定延迟和API四种定时策略
* 支持单机、广播、**MapReduce**三种执行模式
* 支持任意的水平扩展,性能强劲无上限
* 仅依赖数据库,部署简单,上手容易,开发高效,仅需几行代码即可获得整个集群的分布式计算能力。
* 支持SpringBean、普通Java类内置/外置、Shell、Python等处理器
# 部署
### 环境要求
* 运行环境JDK8+
* 编译环境Maven3+
* 数据库Spring Data JPA支持的关系型数据库理论上都可以MySQL/Oracle...
### 项目部署
1. 部署数据库由于调度Server数据持久化层基于Spring Data Jpa实现**开发者仅需完成数据库的创建**即运行SQL`CREATE database if NOT EXISTS oms default character set utf8mb4 collate utf8mb4_unicode_ci;`
2. 部署调度服务器oh-my-scheduler-server修改配置文件application.properties按需修改之后maven打包部署运行一条龙。
3. 部署前端页面可选server多实例部署时需要自行使用[源码](https://github.com/KFCFans/OhMyScheduler-Console)打包部署即可。
4. 被调度任务集成`oh-my-scheduler-worker`依赖,并完成处理器的开发,详细教程见[开发文档](https://github.com/KFCFans/OhMyScheduler/blob/master/others/doc/DevelopmentGuide.md)。
# 开发日志
### 已完成
* 定时调度功能支持CRON表达式、固定时间间隔、固定频率和API四种方式。
* 任务执行功能支持单机、广播和MapReduce三种执行方式。
* 高可用与水平扩展:调度服务器可以部署任意数量的节点,不存在调度的性能瓶颈。
* 不怎么美观但可以用的前端界面
### 待开发
* 工作流任务编排当前版本勉强可以用MapReduce代替不过工作流挺酷的等框架稳定后进行开发。
* 更多的执行器当前只支持内置Java执行器至少需要支持常用的shell、python和外置Java顺便提供jar包上传下载功能处理器这个问题不大肝就行
# 参考
>Alibaba SchedulerX 2.0
* [Akka 框架](https://yq.aliyun.com/articles/709946?spm=a2c4e.11153959.teamhomeleft.67.6a0560c9bZEnZq)不得不说akka-remote简化了相当大一部分的网络通讯代码。
* [执行器架构设计](https://yq.aliyun.com/articles/704121?spm=a2c4e.11153959.teamhomeleft.97.371960c9qhB1mB)这篇文章反而不太认同感觉我个人的设计更符合Yarn的“架构”。
* [MapReduce模型](https://yq.aliyun.com/articles/706820?spm=a2c4e.11153959.teamhomeleft.83.6a0560c9bZEnZq)想法很Cool大数据处理框架都是处理器向数据移动但对于传统Java应用来说数据向处理器移动也未尝不可这样还能使框架的实现变得简单很多。
* [广播执行](https://yq.aliyun.com/articles/716203?spm=a2c4e.11153959.teamhomeleft.40.371960c9qhB1mB)运行清理日志脚本什么的也太实用了8