mirror of
https://github.com/PowerJob/PowerJob.git
synced 2025-07-17 00:00:04 +08:00
358 lines
12 KiB
HTML
358 lines
12 KiB
HTML
<!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中央仓库:推荐地址&备用地址
|
||
<dependency> <groupId>com.github.kfcfans</groupId> <artifactId>oh-my-scheduler-worker</artifactId> <version>1.2.0</version> </dependency> ">
|
||
<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中央仓库:推荐地址&备用地址
|
||
<dependency> <groupId>com.github.kfcfans</groupId> <artifactId>oh-my-scheduler-worker</artifactId> <version>1.2.0</version> </dependency> " />
|
||
<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+eO+mcB1EyEmdp2s=">
|
||
<script defer src="/ohmyscheduler/en.search.min.1272dfb3df2a3f60e11485e0a1158d434da32177db3be3e28aae8e28aa7e9a15.js" integrity="sha256-EnLfs98qP2DhFIXgoRWNQ02jIXfbO+Piiq6OKKp+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>&<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"><dependency></span>
|
||
<span style="color:#f92672"><groupId></span>com.github.kfcfans<span style="color:#f92672"></groupId></span>
|
||
<span style="color:#f92672"><artifactId></span>oh-my-scheduler-worker<span style="color:#f92672"></artifactId></span>
|
||
<span style="color:#f92672"><version></span>1.2.0<span style="color:#f92672"></version></span>
|
||
<span style="color:#f92672"></dependency></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>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|