mirror of
https://github.com/PowerJob/PowerJob.git
synced 2025-07-17 00:00:04 +08:00
436 lines
15 KiB
HTML
436 lines
15 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的容器技术允许开发者开发独立于Worker项目之外Java处理器,简单来说,就是以Maven工程项目的维度去组织一堆Java文件(开发者开发的众多脚本处理器),进而兼具开发效率和可维护性。
|
||
用途举例 比如,突然出现了某个数据库数据清理任务,与主业务无关,写进原本的项目工程中不太优雅,这时候就可以单独创建一个用于数据操作的容器,在里面完成处理器的开发,通过OhMyScheduler的容器部署技术在Worker集群上被加载执行。 比如,常见的日志清理啊,机器状态上报啊,对于广大Java程序员来说,也许并不是很会写shell脚本,此时也可以借用agent+容器技术,利用Java完成各项原本需要通过脚本进行的操作。 (感觉例子举的都不是很好…这个东西嘛,只可意会不可言传,大家努力理解一下吧~超好用哦~)
|
||
生成容器模版 为了方便开发者使用,最新版本的前端页面已经支持容器工程模版的自动生成,开发者仅需要填入相关信息即可下载容器模版开始开发。 Group:对应Maven的<groupId>标签,一般填入倒写的公司域名。 Artifact:对于Maven的<artifactId>标签,填入代表该容器的唯一标示。 Name:对应Maven的<name>标签,填入该容器名称。 Package Name:包名,代表了的容器工程内部所使用的包名,警告:包名一旦生成后,请勿更改!否则会导致运行时容器加载错误(当然,如有必须修改包名的需求,可以尝试替换/resource下以oms-worker-container开头的所有文件相关的值)。 Java Version:容器工程的Java版本,请务必与容器目标部署Worker平台的Java版本保持一致。 开发容器工程 完成容器模版创建后,下载,解压,会得到如下结构的Java工程:
|
||
oms-template-origin // 工程名称,可以自由更改 ├── pom.xml └── src ├── main │ ├── java │ │ └── cn │ │ └── edu │ │ └── zju │ │ └── tjq │ │ └── container │ │ └── samples // 所有处理器代码必须位于该目录下,其余类随意 │ └── resources // 严禁随意更改以下两个配置文件(允许添加,不允许更改现有内容) │ ├── oms-worker-container-spring-context.xml │ └── oms-worker-container.">
|
||
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="容器" />
|
||
<meta property="og:description" content="什么是容器? 介绍 OhMyScheduler的容器技术允许开发者开发独立于Worker项目之外Java处理器,简单来说,就是以Maven工程项目的维度去组织一堆Java文件(开发者开发的众多脚本处理器),进而兼具开发效率和可维护性。
|
||
用途举例 比如,突然出现了某个数据库数据清理任务,与主业务无关,写进原本的项目工程中不太优雅,这时候就可以单独创建一个用于数据操作的容器,在里面完成处理器的开发,通过OhMyScheduler的容器部署技术在Worker集群上被加载执行。 比如,常见的日志清理啊,机器状态上报啊,对于广大Java程序员来说,也许并不是很会写shell脚本,此时也可以借用agent+容器技术,利用Java完成各项原本需要通过脚本进行的操作。 (感觉例子举的都不是很好…这个东西嘛,只可意会不可言传,大家努力理解一下吧~超好用哦~)
|
||
生成容器模版 为了方便开发者使用,最新版本的前端页面已经支持容器工程模版的自动生成,开发者仅需要填入相关信息即可下载容器模版开始开发。 Group:对应Maven的<groupId>标签,一般填入倒写的公司域名。 Artifact:对于Maven的<artifactId>标签,填入代表该容器的唯一标示。 Name:对应Maven的<name>标签,填入该容器名称。 Package Name:包名,代表了的容器工程内部所使用的包名,警告:包名一旦生成后,请勿更改!否则会导致运行时容器加载错误(当然,如有必须修改包名的需求,可以尝试替换/resource下以oms-worker-container开头的所有文件相关的值)。 Java Version:容器工程的Java版本,请务必与容器目标部署Worker平台的Java版本保持一致。 开发容器工程 完成容器模版创建后,下载,解压,会得到如下结构的Java工程:
|
||
oms-template-origin // 工程名称,可以自由更改 ├── pom.xml └── src ├── main │ ├── java │ │ └── cn │ │ └── edu │ │ └── zju │ │ └── tjq │ │ └── container │ │ └── samples // 所有处理器代码必须位于该目录下,其余类随意 │ └── resources // 严禁随意更改以下两个配置文件(允许添加,不允许更改现有内容) │ ├── oms-worker-container-spring-context.xml │ └── oms-worker-container." />
|
||
<meta property="og:type" content="article" />
|
||
<meta property="og:url" content="https://kfcfans.gitee.io/ohmyscheduler/docs/super/container/" />
|
||
|
||
<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.8c0739389d262fcac555a16288129e832618f93ba193658e88e4cfeb51a71475.js" integrity="sha256-jAc5OJ0mL8rFVaFiiBKegyYY+Tuhk2WOiOTP61GnFHU="></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="">处理器开发</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li>
|
||
|
||
|
||
<a href="/ohmyscheduler/docs/startup/4-console-guide/" class="">任务管理与在线运维</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
</ul>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li>
|
||
|
||
|
||
<span>高级特性</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<ul>
|
||
|
||
|
||
<li>
|
||
|
||
|
||
<a href="/ohmyscheduler/docs/super/container/" class="active">容器</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li>
|
||
|
||
|
||
<a href="/ohmyscheduler/docs/super/openapi/" class="">OpenAPI</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
</ul>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li>
|
||
|
||
|
||
<span>版本与升级</span>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<ul>
|
||
|
||
|
||
<li>
|
||
|
||
|
||
<a href="/ohmyscheduler/docs/version/update/" class="">更新日志</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li>
|
||
|
||
|
||
<a href="/ohmyscheduler/docs/version/migrate/" class="">迁移指南</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
</ul>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li>
|
||
|
||
|
||
<a href="/ohmyscheduler/docs/todo/" class="">开发计划</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
<li>
|
||
|
||
|
||
<a href="/ohmyscheduler/docs/faq/" class="">FAQ</a>
|
||
|
||
|
||
</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>
|
||
<ul>
|
||
<li><a href="#介绍">介绍</a></li>
|
||
<li><a href="#用途举例">用途举例</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#生成容器模版">生成容器模版</a></li>
|
||
<li><a href="#开发容器工程">开发容器工程</a></li>
|
||
<li><a href="#创建容器">创建容器</a></li>
|
||
<li><a href="#部署容器">部署容器</a></li>
|
||
</ul>
|
||
</nav>
|
||
|
||
|
||
</aside>
|
||
|
||
|
||
</header>
|
||
|
||
|
||
|
||
<article class="markdown"><h2 id="什么是容器">什么是容器?</h2>
|
||
<h3 id="介绍">介绍</h3>
|
||
<p>OhMyScheduler的容器技术允许开发者<strong>开发独立于Worker项目之外Java处理器</strong>,简单来说,就是以Maven工程项目的维度去组织一堆Java文件(开发者开发的众多脚本处理器),进而兼具开发效率和可维护性。</p>
|
||
<h3 id="用途举例">用途举例</h3>
|
||
<ul>
|
||
<li>比如,突然出现了某个数据库数据清理任务,与主业务无关,写进原本的项目工程中不太优雅,这时候就可以单独创建一个用于数据操作的容器,在里面完成处理器的开发,通过OhMyScheduler的容器部署技术在Worker集群上被加载执行。</li>
|
||
<li>比如,常见的日志清理啊,机器状态上报啊,对于广大Java程序员来说,也许并不是很会写shell脚本,此时也可以借用<strong>agent+容器</strong>技术,利用Java完成各项原本需要通过脚本进行的操作。</li>
|
||
</ul>
|
||
<p>(感觉例子举的都不是很好…这个东西嘛,只可意会不可言传,大家努力理解一下吧~超好用哦~)</p>
|
||
<h2 id="生成容器模版">生成容器模版</h2>
|
||
<blockquote class="book-hint info">
|
||
为了方便开发者使用,最新版本的前端页面已经支持容器工程模版的自动生成,开发者仅需要填入相关信息即可下载容器模版开始开发。
|
||
</blockquote>
|
||
|
||
<p><img src="/ohmyscheduler/oms-console-container-template.png" alt="template" /></p>
|
||
<ul>
|
||
<li>Group:对应Maven的<code><groupId></code>标签,一般填入倒写的公司域名。</li>
|
||
<li>Artifact:对于Maven的<code><artifactId></code>标签,填入代表该容器的唯一标示。</li>
|
||
<li>Name:对应Maven的<code><name></code>标签,填入该容器名称。</li>
|
||
<li>Package Name:包名,代表了的容器工程内部所使用的包名,<strong>警告:包名一旦生成后,请勿更改!否则会导致运行时容器加载错误</strong>(当然,如有必须修改包名的需求,可以尝试替换<code>/resource</code>下以<code>oms-worker-container</code>开头的所有文件相关的值)。</li>
|
||
<li>Java Version:容器工程的Java版本,<strong>请务必与容器目标部署Worker平台的Java版本保持一致</strong>。</li>
|
||
</ul>
|
||
<h2 id="开发容器工程">开发容器工程</h2>
|
||
<p>完成容器模版创建后,下载,解压,会得到如下结构的Java工程:</p>
|
||
<pre><code>oms-template-origin // 工程名称,可以自由更改
|
||
├── pom.xml
|
||
└── src
|
||
├── main
|
||
│ ├── java
|
||
│ │ └── cn
|
||
│ │ └── edu
|
||
│ │ └── zju
|
||
│ │ └── tjq
|
||
│ │ └── container
|
||
│ │ └── samples // 所有处理器代码必须位于该目录下,其余类随意
|
||
│ └── resources // 严禁随意更改以下两个配置文件(允许添加,不允许更改现有内容)
|
||
│ ├── oms-worker-container-spring-context.xml
|
||
│ └── oms-worker-container.properties
|
||
└── test
|
||
└── java
|
||
</code></pre><p>之后便可以愉快地在<strong>packageName</strong>下编写处理器代码啦~</p>
|
||
<p>需要示例代码?<a href="https://gitee.com/KFCFans/OhMyScheduler-Container-Template">客官这边请~</a></p>
|
||
<h2 id="创建容器">创建容器</h2>
|
||
<p>目前,OhMyScheduler支持使用<strong>Git代码库</strong>和<strong>FatJar</strong>来创建容器。创建路径:<strong>容器运维 -> 容器管理 -> 新建容器</strong>。</p>
|
||
<blockquote class="book-hint warning">
|
||
当使用<strong>Git代码库</strong>创建容器时,OhMyScheduler-Server需要完成代码库的下载、编译、构建和上传,<strong>因此需要server运行环境包含可用的Git和Maven环境(包括私服的访问权限)</strong>。
|
||
</blockquote>
|
||
|
||
<p>下图为使用<strong>Git代码库</strong>创建容器的示例,需要填入容器名称和代码库信息等参数:</p>
|
||
<p><img src="/ohmyscheduler/oms-console-container-newgit.png" alt="new-git-container" /></p>
|
||
<p>下图为使用<strong>FatJar</strong>创建容器的示例,需要上传可用的<strong>FatJar</strong>(注:FatJar值包含了所有依赖的Jar文件):</p>
|
||
<p><img src="/ohmyscheduler/oms-console-container-newfatjar.png" alt="new-git-container" /></p>
|
||
<h2 id="部署容器">部署容器</h2>
|
||
<blockquote class="book-hint info">
|
||
完成容器创建后,便可在容器管理界面查看已创建的容器,点击<strong>部署</strong>,可以看到详细的部署信息。
|
||
</blockquote>
|
||
|
||
<p><img src="/ohmyscheduler/oms-console-container-deploy.png" alt="new-git-container" /></p>
|
||
<blockquote class="book-hint info">
|
||
部署完成后,可以点击<strong>机器列表</strong>查看已部署该容器的机器信息。
|
||
</blockquote>
|
||
|
||
</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>
|
||
<ul>
|
||
<li><a href="#介绍">介绍</a></li>
|
||
<li><a href="#用途举例">用途举例</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#生成容器模版">生成容器模版</a></li>
|
||
<li><a href="#开发容器工程">开发容器工程</a></li>
|
||
<li><a href="#创建容器">创建容器</a></li>
|
||
<li><a href="#部署容器">部署容器</a></li>
|
||
</ul>
|
||
</nav>
|
||
|
||
|
||
</aside>
|
||
|
||
</main>
|
||
|
||
|
||
</body>
|
||
|
||
</html>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|