2020-05-20 21:29:41 +08:00

358 lines
12 KiB
HTML
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.

<!DOCTYPE html>
<html lang="en" dir=>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="处理器概述 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处理器。 单机处理器对应了单机任务,即某个任务的某次运行只会有某一台机器的某一个线程参与运算。 广播处理器对应了广播任务,即某个任务的某次运行会调动集群内所有机器参与运算。 Map处理器对应了Map任务即某个任务在运行过程中允许产生子任务并分发到其他机器进行运算。 MapReduce处理器对应了MapReduce任务在Map任务的基础上增加了所有任务结束后的汇总统计。 初始化宿主应用 首先添加相关的jar包依赖最新依赖版本请参考maven中央仓库推荐地址&amp;备用地址
&lt;dependency&gt; &lt;groupId&gt;com.github.kfcfans&lt;/groupId&gt; &lt;artifactId&gt;oh-my-scheduler-worker&lt;/artifactId&gt; &lt;version&gt;1.2.0&lt;/version&gt; &lt;/dependency&gt; ">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="处理器编写" />
<meta property="og:description" content="处理器概述 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处理器。 单机处理器对应了单机任务,即某个任务的某次运行只会有某一台机器的某一个线程参与运算。 广播处理器对应了广播任务,即某个任务的某次运行会调动集群内所有机器参与运算。 Map处理器对应了Map任务即某个任务在运行过程中允许产生子任务并分发到其他机器进行运算。 MapReduce处理器对应了MapReduce任务在Map任务的基础上增加了所有任务结束后的汇总统计。 初始化宿主应用 首先添加相关的jar包依赖最新依赖版本请参考maven中央仓库推荐地址&amp;备用地址
&lt;dependency&gt; &lt;groupId&gt;com.github.kfcfans&lt;/groupId&gt; &lt;artifactId&gt;oh-my-scheduler-worker&lt;/artifactId&gt; &lt;version&gt;1.2.0&lt;/version&gt; &lt;/dependency&gt; " />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://kfcfans.gitee.io/ohmyscheduler/docs/startup/3-processor-develop/" />
<title>处理器编写 | OhMyScheduler</title>
<link rel="manifest" href="/ohmyscheduler/manifest.json">
<link rel="icon" href="/ohmyscheduler/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/ohmyscheduler/book.min.e161f1fe2b283b6a43c29a52fde96e2387fade573e78efa6701d44c8499da76b.css" integrity="sha256-4WHx/isoO2pDwppS/eluI4f63lc&#43;eO&#43;mcB1EyEmdp2s=">
<script defer src="/ohmyscheduler/en.search.min.1272dfb3df2a3f60e11485e0a1158d434da32177db3be3e28aae8e28aa7e9a15.js" integrity="sha256-EnLfs98qP2DhFIXgoRWNQ02jIXfbO&#43;Piiq6OKKp&#43;mhU="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
-->
</head>
<body dir=>
<input type="checkbox" class="hidden" id="menu-control" />
<main class="container flex">
<aside class="book-menu">
<nav>
<h2 class="book-brand">
<a href="/ohmyscheduler"><span>OhMyScheduler</span>
</a>
</h2>
<div class="book-search">
<input type="text" id="book-search-input" placeholder="Search" aria-label="Search" maxlength="64" data-hotkeys="s/" />
<div class="book-search-spinner hidden"></div>
<ul id="book-search-results"></ul>
</div>
<ul>
<li>
<span>快速开始</span>
<ul>
<li>
<a href="/ohmyscheduler/docs/startup/1-server-startup/" class="">调度中心Server部署</a>
</li>
<li>
<a href="/ohmyscheduler/docs/startup/2-worker-startup/" class="">执行器Worker初始化</a>
</li>
<li>
<a href="/ohmyscheduler/docs/startup/3-processor-develop/" class="active">处理器编写</a>
</li>
</ul>
</li>
<li class="book-section-flat" >
<span>Shortcodes</span>
<ul>
<li>
<a href="/ohmyscheduler/docs/shortcodes/columns/" class="">Columns</a>
</li>
<li>
<a href="/ohmyscheduler/docs/shortcodes/details/" class="">Details</a>
</li>
<li>
<a href="/ohmyscheduler/docs/shortcodes/expand/" class="">Expand</a>
</li>
<li>
<a href="/ohmyscheduler/docs/shortcodes/hints/" class="">Hints</a>
</li>
<li>
<a href="/ohmyscheduler/docs/shortcodes/katex/" class="">Katex</a>
</li>
<li>
<a href="/ohmyscheduler/docs/shortcodes/mermaid/" class="">Mermaid</a>
</li>
<li>
<a href="/ohmyscheduler/docs/shortcodes/tabs/" class="">Tabs</a>
</li>
</ul>
</li>
</ul>
</nav>
<script>(function(){var menu=document.querySelector("aside.book-menu nav");addEventListener("beforeunload",function(event){localStorage.setItem("menu.scrollTop",menu.scrollTop);});menu.scrollTop=localStorage.getItem("menu.scrollTop");})();</script>
</aside>
<div class="book-page">
<header class="book-header">
<div class="flex align-center justify-between">
<label for="menu-control">
<img src="/ohmyscheduler/svg/menu.svg" class="book-icon" alt="Menu" />
</label>
<strong>处理器编写</strong>
<label for="toc-control">
<img src="/ohmyscheduler/svg/toc.svg" class="book-icon" alt="Table of Contents" />
</label>
</div>
<input type="checkbox" class="hidden" id="toc-control" />
<aside class="hidden clearfix">
<nav id="TableOfContents">
<ul>
<li><a href="#处理器概述">处理器概述</a></li>
<li><a href="#初始化宿主应用">初始化宿主应用</a></li>
</ul>
</nav>
</aside>
</header>
<article class="markdown"><h2 id="处理器概述">处理器概述</h2>
<blockquote>
<p>OhMyScheduler当前支持Shell、Python等脚本处理器和Java处理器。脚本处理器只需要开发者完成脚本的编写xxx.sh / xxx.py在控制台填入脚本内容即可本章不再赘述。本章将重点阐述Java处理器开发方法与使用技巧。</p>
</blockquote>
<ul>
<li>Java处理器可根据<strong>代码所处位置</strong>划分为内置Java处理器和容器Java处理器前者直接集成在宿主应用也就是接入本系统的业务应用一般用来处理业务需求后者可以在一个独立的轻量级的Java工程中开发通过<strong>容器技术</strong>详见容器章节被worker集群热加载提供Java的“脚本能力”一般用于处理灵活多变的需求。</li>
<li>Java处理器可根据<strong>对象创建者</strong>划分为SpringBean处理器和普通Java对象处理器前者由Spring IOC容器完成处理器的创建和初始化后者则有OhMyScheduler维护其状态。如果宿主应用支持Spring<strong>强烈建议使用SpringBean处理器</strong>开发者仅需要将Processor注册进Spring IOC容器一个<code>@Component</code>注解或一句<code>bean</code>配置)。</li>
<li>Java处理器可根据<strong>功能</strong>划分为单机处理器、广播处理器、Map处理器和MapReduce处理器。
<ul>
<li>单机处理器对应了单机任务,即某个任务的某次运行只会有某一台机器的某一个线程参与运算。</li>
<li>广播处理器对应了广播任务,即某个任务的某次运行会<strong>调动集群内所有机器参与运算</strong></li>
<li>Map处理器对应了Map任务即某个任务在运行过程中<strong>允许产生子任务并分发到其他机器进行运算</strong></li>
<li>MapReduce处理器对应了MapReduce任务在Map任务的基础上<strong>增加了所有任务结束后的汇总统计</strong></li>
</ul>
</li>
</ul>
<h2 id="初始化宿主应用">初始化宿主应用</h2>
<p>首先添加相关的jar包依赖最新依赖版本请参考maven中央仓库<a href="https://search.maven.org/search?q=oh-my-scheduler-worker">推荐地址</a>&amp;<a href="https://mvnrepository.com/search?q=com.github.kfcfans">备用地址</a></p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-xml" data-lang="xml"><span style="color:#f92672">&lt;dependency&gt;</span>
<span style="color:#f92672">&lt;groupId&gt;</span>com.github.kfcfans<span style="color:#f92672">&lt;/groupId&gt;</span>
<span style="color:#f92672">&lt;artifactId&gt;</span>oh-my-scheduler-worker<span style="color:#f92672">&lt;/artifactId&gt;</span>
<span style="color:#f92672">&lt;version&gt;</span>1.2.0<span style="color:#f92672">&lt;/version&gt;</span>
<span style="color:#f92672">&lt;/dependency&gt;</span>
</code></pre></div></article>
<footer class="book-footer">
<div class="flex flex-wrap justify-between">
</div>
</footer>
<div class="book-comments">
</div>
<label for="menu-control" class="hidden book-menu-overlay"></label>
</div>
<aside class="book-toc">
<nav id="TableOfContents">
<ul>
<li><a href="#处理器概述">处理器概述</a></li>
<li><a href="#初始化宿主应用">初始化宿主应用</a></li>
</ul>
</nav>
</aside>
</main>
</body>
</html>