73 lines
11 KiB
XML
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.

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>快速开始 on OhMyScheduler</title>
<link>https://kfcfans.gitee.io/docs/startup/</link>
<description>Recent content in 快速开始 on OhMyScheduler</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<atom:link href="https://kfcfans.gitee.io/docs/startup/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>调度中心Server部署</title>
<link>https://kfcfans.gitee.io/docs/startup/1-server-startup/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://kfcfans.gitee.io/docs/startup/1-server-startup/</guid>
<description>环境要求 Open JDK 8+
Apache Maven 3+
任意 Spring Data Jpa 支持的关系型数据库MySQL/Oracle/MS SQLServer&amp;hellip;
MongoDB可选任意支持GridFS的mongoDB版本4.2.6测试通过,其余未经测试,仅从理论角度分析可用),缺失该组件的情况下将无法使用在线日志、容器部署等扩展功能
初始化关系数据库 调度服务器oh-my-scheduler-server的持久化层基于Spring Boot Jpa实现对于能够直连数据库的应用开发者仅需完成数据库的创建即运行SQLCREATE database if NOT EXISTS oms-product default character set utf8mb4 collate utf8mb4_unicode_ci;`
OhMyScheduler支持环境隔离提供日常daily、预发pre和线上product三套环境请根据使用的环境分别部署对应的数据库oms-daily、oms-pre和oms-product。 调度服务器属于时间敏感应用强烈建议检查当前数据库所使用的时区信息show variables like &amp;quot;%time_zone%&amp;quot;;务必确保time_zone代表的时区与JDBC URL中serverTimezone字段代表的时区一致 手动建表表SQL文件下载地址 部署调度服务器—源码编译 调度服务器oh-my-scheduler-server支持任意的水平扩展即多实例集群部署仅需要在同一个局域网内启动新的服务器实例性能强劲无上限
调度服务器oh-my-scheduler-server为了支持环境隔离分别采用了日常application-daily.properties、预发application-pre.properties和线上application-product.properties三套配置文件请根据实际需求进行修改以下为配置文件详解。
配置项 含义 可选 server.port SpringBoot配置HTTP端口号默认7700 否 oms.</description>
</item>
<item>
<title>执行器Worker初始化</title>
<link>https://kfcfans.gitee.io/docs/startup/2-worker-startup/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://kfcfans.gitee.io/docs/startup/2-worker-startup/</guid>
<description>基于宿主应用的执行器初始化 宿主应用即原有的业务应用,假如需要调度执行的任务与当前业务有较为紧密的联系,建议采取该方式。
首先添加相关的jar包依赖最新依赖版本请参考maven中央仓库推荐地址&amp;amp;备用地址
&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;com.github.kfcfans&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;oh-my-scheduler-worker&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;1.2.0&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; 其次填写执行器客户端配置文件OhMyConfig各参数说明如下表所示
属性名称 含义 默认值 appName 宿主应用名称,需要提前在控制台完成注册 无,必填项,否则启动报错 port Worker工作端口 27777 serverAddress 调度中心oh-my-scheduler-server地址列表 无,必填项,否则启动报错 storeStrategy 本地存储策略,枚举值磁盘/内存大型MapReduce等会产生大量Task的任务推荐使用磁盘降低内存压力否则建议使用内存加速计算 StoreStrategy.DISK磁盘 maxResultLength 每个Task返回结果的默认长度超长将被截断。过长可能导致网络拥塞 8096 enableTestMode 是否启用测试模式启用后无需Server也能顺利启动OhMyScheduler-Worker用于处理器本地的单元测试 false 最后,初始化客户端,完成执行器的启动,代码示例如下:
@Configuration public class OhMySchedulerConfig { @Bean public OhMyWorker initOMS() throws Exception { // 服务器HTTP地址端口号为 server.port而不是 ActorSystem port List&amp;lt;String&amp;gt; serverAddress = Lists.</description>
</item>
<item>
<title>处理器开发</title>
<link>https://kfcfans.gitee.io/docs/startup/3-processor-develop/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://kfcfans.gitee.io/docs/startup/3-processor-develop/</guid>
<description>处理器概述 OhMyScheduler当前支持Shell、Python等脚本处理器和Java处理器。脚本处理器只需要开发者完成脚本的编写xxx.sh / xxx.py在控制台填入脚本内容即可本章不再赘述。本章将重点阐述Java处理器开发方法与使用技巧。
Java处理器可根据代码所处位置划分为内置Java处理器和容器Java处理器前者直接集成在宿主应用也就是接入本系统的业务应用一般用来处理业务需求后者可以在一个独立的轻量级的Java工程中开发通过容器技术详见容器章节被worker集群热加载提供Java的“脚本能力”一般用于处理灵活多变的需求。 Java处理器可根据对象创建者划分为SpringBean处理器和普通Java对象处理器前者由Spring IOC容器完成处理器的创建和初始化后者则有OhMyScheduler维护其状态。如果宿主应用支持Spring强烈建议使用SpringBean处理器开发者仅需要将Processor注册进Spring IOC容器一个@Component注解或一句bean配置。 Java处理器可根据功能划分为单机处理器、广播处理器、Map处理器和MapReduce处理器。 单机处理器BasicProcessor对应了单机任务即某个任务的某次运行只会有某一台机器的某一个线程参与运算。 广播处理器BroadcastProcessor对应了广播任务即某个任务的某次运行会调动集群内所有机器参与运算。 Map处理器MapProcessor对应了Map任务即某个任务在运行过程中允许产生子任务并分发到其他机器进行运算。 MapReduce处理器MapReduceProcessor对应了MapReduce任务在Map任务的基础上增加了所有任务结束后的汇总统计。 核心方法process 任意Java处理器都需要实现处理的核心方法其接口签名如下
ProcessResult process(TaskContext context) throws Exception; 方法入参TaskContext包含了本次处理的上下文信息具体属性如下
属性名称 意义/用法 jobId 任务ID开发者一般无需关心此参数 instanceId 任务实例ID全局唯一开发者一般无需关心此参数 subInstanceId 子任务实例ID秒级任务使用开发者一般无需关心此参数 taskId 采用链式命名法的ID在某个任务实例内唯一开发者一般无需关心此参数 taskName task名称Map/MapReduce任务的子任务的值为开发者指定否则为系统默认值开发者一般无需关心此参数 jobParams 任务参数,其值等同于控制台录入的任务参数,常用! instanceParams 任务实例参数其值等同于使用OpenAPI运行任务实例时传递的参数常用 maxRetryTimes Task的最大重试次数 currentRetryTimes Task的当前重试次数和maxRetryTimes联合起来可以判断当前是否为该Task的最后一次运行机会 subTask 子TaskMap/MapReduce处理器专属开发者调用map方法时传递的子任务列表中的某一个 omsLogger 在线日志用法同Slf4J记录的日志可以直接通过控制台查看非常便捷和强大不过使用过程中需要注意频率可能对Server造成巨大的压力 方法的返回值为ProcessResult代表了本次Task执行的结果包含success和msg两个属性分别用于传递Task是否执行成功和Task需要返回的信息。</description>
</item>
<item>
<title>任务管理与在线运维</title>
<link>https://kfcfans.gitee.io/docs/startup/4-console-guide/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://kfcfans.gitee.io/docs/startup/4-console-guide/</guid>
<description>前端控制台允许开发者可视化地进行任务增、删、改、查等管理操作,同时也能直观地看到任务的运行数据,包括运行状态、详情和在线日志等。以下为对控制台的详细介绍: 主页 展示了系统整体的概览和集群Worker列表。
任务创建 创建需要被调度执行的任务,入口为主页 -&amp;gt; 任务管理 -&amp;gt; 新建任务。
任务名称:名称,便于记忆与搜索,无特殊用途,请尽量简短(占用数据库字段空间)
任务描述:描述,无特殊作用,请尽量简短(占用数据库字段空间)
任务参数任务处理时能够获取到的参数即各个Processor的process方法入参TaskContext对象的jobParams字段进行一次处理器开发就能理解了
定时信息:由下拉框和输入框组成
API -&amp;gt; 不需要填写任何参数(填了也不起作用) CRON -&amp;gt; 填写 CRON 表达式(可以找个在线生成网站生成) 固定频率 -&amp;gt; 填写整数,单位毫秒 固定延迟 -&amp;gt; 填写整数,单位毫秒 执行配置由执行类型单机、广播和MapReduce、处理器类型和处理器参数组成后两项相互关联。
内置Java处理器 -&amp;gt; 填写该处理器的全限定类名eg, com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo Java容器 -&amp;gt; 填写容器ID#处理器全限定类名eg1#com.github.kfcfans.oms.container.DemoProcessor SHELL -&amp;gt; 填写需要处理的脚本直接复制文件内容或脚本下载连接http://xxx PYTHON -&amp;gt; 填写完整的python脚本或下载连接http://xxx 运行配置
最大实例数:该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例) 单机线程并发数该实例执行过程中每个Worker使用的线程数量MapReduce任务生效其余无论填什么都只会使用1个线程或3个线程&amp;hellip; 运行时间限制限定任务的最大运行时间超时则视为失败单位毫秒0代表不限制超时时间。 重试配置:
任务重试次数实例级别失败了整个任务实例重试会更换TaskTracker本次任务实例的Master节点代价较大大型Map/MapReduce慎用。 子任务重试次数Task级别每个子Task失败后单独重试会更换ProcessorTracker本次任务实际执行的Worker节点代价较小推荐使用。 注对于单机任务来说假如任务重试次数和子任务重试次数都配置了1且都执行失败实际执行次数会变成4次推荐任务实例重试配置为0子任务重试次数根据实际情况配置。 机器配置用来标明允许执行任务的机器状态避开那些摇摇欲坠的机器0代表无任何限制。</description>
</item>
</channel>
</rss>