[merge] Merge branch 'v2.0.1'

This commit is contained in:
tjq 2020-06-13 21:58:51 +08:00
commit 276cbc1a54
311 changed files with 2020 additions and 1759 deletions

View File

@ -1,15 +1,15 @@
<p align="center">
<img src="https://raw.githubusercontent.com/KFCFans/OhMyScheduler/master/others/images/oms-logo.png" alt="OhMyScheduler" title="OhMyScheduler" width="557"/>
<img src="https://raw.githubusercontent.com/KFCFans/PowerJob/master/others/images/logo.png" alt="PowerJob" title="PowerJob" width="557"/>
</p>
<p align="center">
<a href="https://github.com/KFCFans/OhMyScheduler/actions"><img src="https://github.com/KFCFans/OhMyScheduler/workflows/Java%20CI%20with%20Maven/badge.svg?branch=master" alt="actions"></a>
<a href="https://search.maven.org/search?q=com.github.kfcfans"><img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.github.kfcfans/oh-my-scheduler-worker"></a>
<a href="https://github.com/KFCFans/OhMyScheduler/releases"><img alt="GitHub release (latest SemVer)" src="https://img.shields.io/github/v/release/kfcfans/ohmyscheduler?color=%23E59866"></a>
<a href="https://github.com/KFCFans/OhMyScheduler/blob/master/LICENSE"><img src="https://img.shields.io/github/license/KFCFans/OhMyScheduler" alt="LICENSE"></a>
<a href="https://github.com/KFCFans/PowerJob/actions"><img src="https://github.com/KFCFans/PowerJob/workflows/Java%20CI%20with%20Maven/badge.svg?branch=master" alt="actions"></a>
<a href="https://search.maven.org/search?q=com.github.kfcfans"><img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.github.kfcfans/powerjob-worker"></a>
<a href="https://github.com/KFCFans/PowerJob/releases"><img alt="GitHub release (latest SemVer)" src="https://img.shields.io/github/v/release/kfcfans/powerjob?color=%23E59866"></a>
<a href="https://github.com/KFCFans/PowerJob/blob/master/LICENSE"><img src="https://img.shields.io/github/license/KFCFans/PowerJob" alt="LICENSE"></a>
</p>
OhMyScheduler是基于Akka架构的新一代分布式调度与计算框架,能让您轻松完成作业的调度与繁杂任务的分布式计算。
PowerJob原OhMyScheduler是全新一代分布式调度与计算框架,能让您轻松完成作业的调度与繁杂任务的分布式计算。
# 简介
### 主要特性
* 使用简单提供前端Web界面允许开发者可视化地完成调度任务的管理增、删、改、查、任务运行状态监控和运行日志查看等功能。
@ -22,14 +22,14 @@ OhMyScheduler是基于Akka架构的新一代分布式调度与计算框架
* 高可用&高性能:调度服务器经过精心设计,一改其他调度框架基于数据库锁的策略,实现了无锁化调度。部署多个调度服务器可以同时实现高可用和性能的提升(支持无限的水平扩展)。
* 故障转移与恢复:任务执行失败后,可根据配置的重试策略完成重试,只要执行器集群有足够的计算节点,任务就能顺利完成。
[在线试用地址](https://www.yuque.com/ohmyscheduler/guidence/hnbskn) 试用应用名称oms-agent-test
[在线试用地址](https://www.yuque.com/powerjob/guidence/hnbskn)
### 适用场景
* 有定时执行需求的业务场景:如每天凌晨全量同步数据、生成业务报表等。
* 有需要全部机器一同执行的业务场景:如使用广播执行模式清理集群日志。
* 有需要分布式处理的业务场景比如需要更新一大批数据单机执行耗时非常长可以使用Map/MapReduce处理器完成任务的分发调动整个集群加速计算。
### 同类产品对比
| | QuartZ | xxl-job | SchedulerX 2.0 | OhMyScheduler |
| | QuartZ | xxl-job | SchedulerX 2.0 | PowerJob |
| -------------- | ------------------------ | ---------------------------------------- | ------------------------------------------------- | ------------------------------------------------------------ |
| 定时类型 | CRON | CRON | CRON、固定频率、固定延迟、OpenAPI | **CRON、固定频率、固定延迟、OpenAPI** |
| 任务类型 | 内置Java | 内置Java、GLUE Java、Shell、Python等脚本 | 内置Java、外置JavaFatJar、Shell、Python等脚本 | **内置Java、外置Java容器、Shell、Python等脚本** |
@ -43,7 +43,7 @@ OhMyScheduler是基于Akka架构的新一代分布式调度与计算框架
# 文档
**[超详细中文文档](https://www.yuque.com/ohmyscheduler/guidence/ztn4i5)** OR **[备用地址(内容可能更新不及时)](https://kfcfans.github.io/)**
**[超详细中文文档](https://www.yuque.com/powerjob/guidence/ztn4i5)** OR **[备用地址(内容可能更新不及时)](https://kfcfans.github.io/)**
PS感谢文档翻译平台[breword](https://www.breword.com/)对本项目英文文档翻译做出的巨大贡献!

View File

@ -1,16 +0,0 @@
package com.github.kfcfans.oms.server.service.alarm;
import com.github.kfcfans.oms.server.persistence.core.model.UserInfoDO;
import java.util.List;
/**
* 报警接口
*
* @author tjq
* @since 2020/4/19
*/
public interface Alarmable {
void alarm(AlarmContent alarmContent, List<UserInfoDO> targetUserList);
}

View File

@ -1,59 +0,0 @@
package com.github.kfcfans.oms.server.service.alarm;
import com.github.kfcfans.oms.common.utils.JsonUtils;
import com.github.kfcfans.oms.server.persistence.core.model.UserInfoDO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* 邮件通知服务
*
* @author tjq
* @since 2020/4/30
*/
@Slf4j
@Service("omsDefaultMailAlarmService")
public class DefaultMailAlarmService implements Alarmable {
private JavaMailSender javaMailSender;
@Value("${spring.mail.username}")
private String from;
private static final String MAIL_TITLE = "OhMyScheduler 任务执行失败报警";
private static final String MAIL_CONTENT_PATTERN = "任务运行失败,详细信息如下:%s";
@Autowired(required = false)
public DefaultMailAlarmService(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
@Override
public void alarm(AlarmContent alarmContent, List<UserInfoDO> targetUserList) {
log.debug("[DefaultMailAlarmService] content: {}, user: {}", alarmContent, targetUserList);
if (CollectionUtils.isEmpty(targetUserList)) {
return;
}
SimpleMailMessage sm = new SimpleMailMessage();
sm.setFrom(from);
sm.setTo(targetUserList.stream().map(UserInfoDO::getEmail).toArray(String[]::new));
sm.setSubject(MAIL_TITLE);
sm.setText(String.format(MAIL_CONTENT_PATTERN, JsonUtils.toJSONString(alarmContent)));
try {
javaMailSender.send(sm);
}catch (Exception e) {
log.error("[DefaultMailAlarmService] send mail({}) failed.", sm, e);
}
}
}

View File

@ -1,14 +0,0 @@
${AnsiColor.GREEN}
███████ ██ ████ ████ ████████ ██ ██ ██
██░░░░░██ ░██ ░██░██ ██░██ ██ ██ ██░░░░░░ ░██ ░██ ░██
██ ░░██░██ ░██░░██ ██ ░██ ░░██ ██ ░██ █████ ░██ █████ ░██ ██ ██ ░██ █████ ██████
░██ ░██░██████ ░██ ░░███ ░██ ░░███ ░█████████ ██░░░██░██████ ██░░░██ ██████░██ ░██ ░██ ██░░░██░░██░░█
░██ ░██░██░░░██░██ ░░█ ░██ ░██ ░░░░░░░░██░██ ░░ ░██░░░██░███████ ██░░░██░██ ░██ ░██░███████ ░██ ░
░░██ ██ ░██ ░██░██ ░ ░██ ██ ░██░██ ██░██ ░██░██░░░░ ░██ ░██░██ ░██ ░██░██░░░░ ░██
░░███████ ░██ ░██░██ ░██ ██ ████████ ░░█████ ░██ ░██░░██████░░██████░░██████ ███░░██████░███
░░░░░░░ ░░ ░░ ░░ ░░ ░░ ░░░░░░░░ ░░░░░ ░░ ░░ ░░░░░░ ░░░░░░ ░░░░░░ ░░░ ░░░░░░ ░░░
${AnsiColor.BRIGHT_RED}
* Maintainer: tengjiqi@gmail.com
* SourceCode: https://github.com/KFCFans/OhMyScheduler
* PoweredBy: SpringBoot${spring-boot.formatted-version} & Akka (v2.6.4)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

View File

@ -1,32 +0,0 @@
package com.github.kfcfans.oms.worker.common;
import lombok.extern.slf4j.Slf4j;
/**
* 打印启动 Banner
*
* @author tjq
* @since 2020/5/11
*/
@Slf4j
public final class OmsBannerPrinter {
private static final String BANNER = "\n ███████ ██ ████ ████ ████████ ██ ██ ██\n" +
" ██░░░░░██ ░██ ░██░██ ██░██ ██ ██ ██░░░░░░ ░██ ░██ ░██ \n" +
" ██ ░░██░██ ░██░░██ ██ ░██ ░░██ ██ ░██ █████ ░██ █████ ░██ ██ ██ ░██ █████ ██████\n" +
"░██ ░██░██████ ░██ ░░███ ░██ ░░███ ░█████████ ██░░░██░██████ ██░░░██ ██████░██ ░██ ░██ ██░░░██░░██░░█\n" +
"░██ ░██░██░░░██░██ ░░█ ░██ ░██ ░░░░░░░░██░██ ░░ ░██░░░██░███████ ██░░░██░██ ░██ ░██░███████ ░██ ░ \n" +
"░░██ ██ ░██ ░██░██ ░ ░██ ██ ░██░██ ██░██ ░██░██░░░░ ░██ ░██░██ ░██ ░██░██░░░░ ░██ \n" +
" ░░███████ ░██ ░██░██ ░██ ██ ████████ ░░█████ ░██ ░██░░██████░░██████░░██████ ███░░██████░███ \n" +
" ░░░░░░░ ░░ ░░ ░░ ░░ ░░ ░░░░░░░░ ░░░░░ ░░ ░░ ░░░░░░ ░░░░░░ ░░░░░░ ░░░ ░░░░░░ ░░░";
public static void print() {
log.info(BANNER);
String version = OmsWorkerVersion.getVersion();
version = (version != null) ? " (v" + version + ")" : "";
log.info(":: OhMyScheduler Worker :: {}", version);
}
}

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4" />

BIN
others/images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@ -1,6 +1,6 @@
# 2020.4.8 第一轮测试
## 测试用例
* MapReduce任务http://localhost:7700/job/save?appId=1&concurrency=5&executeType=MAP_REDUCE&groupName=null&instanceRetryNum=3&instanceTimeLimit=4545454545&jobDescription=jobDescription&jobName=testJob&jobParams=%7B%22a%22%3A%22b%22%7D&maxInstanceNum=1&processorInfo=com.github.kfcfans.oms.processors.TestMapReduceProcessor&processorType=EMBEDDED_JAVA&status=1&taskRetryNum=3&taskTimeLimit=564465656&timeExpression=0%20*%20*%20*%20*%20%3F%20&timeExpressionType=CRON
* MapReduce任务http://localhost:7700/job/save?appId=1&concurrency=5&executeType=MAP_REDUCE&groupName=null&instanceRetryNum=3&instanceTimeLimit=4545454545&jobDescription=jobDescription&jobName=testJob&jobParams=%7B%22a%22%3A%22b%22%7D&maxInstanceNum=1&processorInfo=com.github.kfcfans.powerjob.processors.TestMapReduceProcessor&processorType=EMBEDDED_JAVA&status=1&taskRetryNum=3&taskTimeLimit=564465656&timeExpression=0%20*%20*%20*%20*%20%3F%20&timeExpressionType=CRON
## 问题记录
#### 任务执行成功,释放资源失败
@ -11,11 +11,11 @@
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at CommonUtils.executeWithRetry(CommonUtils.java:34)
at com.github.kfcfans.oms.worker.persistence.TaskPersistenceService.execute(TaskPersistenceService.java:297)
at com.github.kfcfans.oms.worker.persistence.TaskPersistenceService.deleteAllTasks(TaskPersistenceService.java:269)
at com.github.kfcfans.oms.worker.core.tracker.task.CommonTaskTracker.destroy(TaskTracker.java:231)
at com.github.kfcfans.oms.worker.core.tracker.task.CommonTaskTracker$StatusCheckRunnable.innerRun(TaskTracker.java:421)
at com.github.kfcfans.oms.worker.core.tracker.task.CommonTaskTracker$StatusCheckRunnable.run(TaskTracker.java:467)
at TaskPersistenceService.execute(TaskPersistenceService.java:297)
at TaskPersistenceService.deleteAllTasks(TaskPersistenceService.java:269)
at CommonTaskTracker.destroy(TaskTracker.java:231)
at CommonTaskTracker$StatusCheckRunnable.innerRun(TaskTracker.java:421)
at CommonTaskTracker$StatusCheckRunnable.run(TaskTracker.java:467)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
@ -32,12 +32,12 @@ java.lang.InterruptedException: sleep interrupted
2020-04-08 10:10:08 ERROR - [TaskTracker-1586311804030] create root task failed.
[ERROR] [04/08/2020 10:10:08.511] [oms-akka.actor.internal-dispatcher-20] [akka://oms/user/task_tracker] create root task failed.
java.lang.RuntimeException: create root task failed.
at com.github.kfcfans.oms.worker.core.tracker.task.CommonTaskTracker.persistenceRootTask(TaskTracker.java:208)
at com.github.kfcfans.oms.worker.core.tracker.task.CommonTaskTracker.<init>(TaskTracker.java:81)
at com.github.kfcfans.oms.worker.actors.TaskTrackerActor.lambda$onReceiveServerScheduleJobReq$2(TaskTrackerActor.java:138)
at CommonTaskTracker.persistenceRootTask(TaskTracker.java:208)
at CommonTaskTracker.<init>(TaskTracker.java:81)
at TaskTrackerActor.lambda$onReceiveServerScheduleJobReq$2(TaskTrackerActor.java:138)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at com.github.kfcfans.oms.worker.core.tracker.task.TaskTrackerPool.atomicCreateTaskTracker(TaskTrackerPool.java:30)
at com.github.kfcfans.oms.worker.actors.TaskTrackerActor.onReceiveServerScheduleJobReq(TaskTrackerActor.java:138)
at TaskTrackerPool.atomicCreateTaskTracker(TaskTrackerPool.java:30)
at TaskTrackerActor.onReceiveServerScheduleJobReq(TaskTrackerActor.java:138)
```
***
原因及解决方案destroy方法调用了scheduledPool.shutdownNow()方法导致调用该方法的线程池被强制关闭该方法也自然被中断数据删到一半没删掉破坏了数据库结构后面的insert自然也就失败了。
@ -60,13 +60,13 @@ java.lang.RuntimeException: create root task failed.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.LinkedList.checkElementIndex(LinkedList.java:555)
at java.util.LinkedList.get(LinkedList.java:476)
at com.github.kfcfans.oms.worker.persistence.TaskPersistenceService.lambda$getTaskStatus$10(TaskPersistenceService.java:214)
at TaskPersistenceService.lambda$getTaskStatus$10(TaskPersistenceService.java:214)
at CommonUtils.executeWithRetry(CommonUtils.java:37)
at com.github.kfcfans.oms.worker.persistence.TaskPersistenceService.execute(TaskPersistenceService.java:310)
at com.github.kfcfans.oms.worker.persistence.TaskPersistenceService.getTaskStatus(TaskPersistenceService.java:212)
at com.github.kfcfans.oms.worker.core.tracker.task.TaskTracker.updateTaskStatus(TaskTracker.java:107)
at com.github.kfcfans.oms.worker.core.tracker.task.TaskTracker.broadcast(TaskTracker.java:214)
at com.github.kfcfans.oms.worker.actors.TaskTrackerActor.onReceiveBroadcastTaskPreExecuteFinishedReq(TaskTrackerActor.java:106)
at TaskPersistenceService.execute(TaskPersistenceService.java:310)
at TaskPersistenceService.getTaskStatus(TaskPersistenceService.java:212)
at TaskTracker.updateTaskStatus(TaskTracker.java:107)
at TaskTracker.broadcast(TaskTracker.java:214)
at TaskTrackerActor.onReceiveBroadcastTaskPreExecuteFinishedReq(TaskTrackerActor.java:106)
at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:24)
at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:20)
at scala.PartialFunction.applyOrElse(PartialFunction.scala:187)

View File

@ -10,9 +10,9 @@ com.esotericsoftware.kryo.KryoException: Unable to find class: cn.edu.zju.oms.co
at com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:151)
at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:684)
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:795)
at com.github.kfcfans.oms.worker.common.utils.SerializerUtils.deSerialized(SerializerUtils.java:48)
at com.github.kfcfans.oms.worker.core.executor.ProcessorRunnable.innerRun(ProcessorRunnable.java:63)
at com.github.kfcfans.oms.worker.core.executor.ProcessorRunnable.run(ProcessorRunnable.java:179)
at SerializerUtils.deSerialized(SerializerUtils.java:48)
at ProcessorRunnable.innerRun(ProcessorRunnable.java:63)
at ProcessorRunnable.run(ProcessorRunnable.java:179)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)

View File

@ -1,8 +1,8 @@
#!/bin/bash
# -p允许后面跟一个字符串作为提示 -r保证读入的是原始内容不会发生任何转义
read -r -p "请输入Dockedr镜像版本:" version
echo "即将构建的 server 镜像:oms-server:$version"
echo "即将构建的 agent 镜像:oms-agent:$version"
echo "即将构建的 server 镜像:powerjob-server:$version"
echo "即将构建的 agent 镜像:powerjob-agent:$version"
read -r -p "任意键继续:"
# 一键部署脚本,请勿挪动脚本
@ -12,40 +12,40 @@ read -r -p "是否进行maven构建y/n:" needmvn
if [ "$needmvn" = "y" ] || [ "$needmvn" = "Y" ]; then
echo "================== 构建 jar =================="
# -U强制检查snapshot库 -pl指定需要构建的模块多模块逗号分割 -am同时构建依赖模块一般与pl连用 -Pxxx指定使用的配置文件
mvn clean package -Pdev -DskipTests -U -e -pl oh-my-scheduler-server,oh-my-scheduler-worker-agent -am
mvn clean package -Pdev -DskipTests -U -e -pl powerjob-server,powerjob-worker-agent -am
echo "================== 拷贝 jar =================="
/bin/cp -rf oh-my-scheduler-server/target/*.jar oh-my-scheduler-server/docker/oms-server.jar
/bin/cp -rf oh-my-scheduler-worker-agent/target/*.jar oh-my-scheduler-worker-agent/oms-agent.jar
ls -l oh-my-scheduler-server/docker/oms-server.jar
ls -l oh-my-scheduler-worker-agent/oms-agent.jar
/bin/cp -rf powerjob-server/target/*.jar powerjob-server/docker/powerjob-server.jar
/bin/cp -rf powerjob-worker-agent/target/*.jar powerjob-worker-agent/powerjob-agent.jar
ls -l powerjob-server/docker/powerjob-server.jar
ls -l powerjob-worker-agent/powerjob-agent.jar
fi
echo "================== 关闭老应用 =================="
docker stop oms-server
docker stop oms-agent
docker stop oms-agent2
docker stop powerjob-server
docker stop powerjob-agent
docker stop powerjob-agent2
echo "================== 删除老容器 =================="
docker container rm oms-server
docker container rm oms-agent
docker container rm oms-agent2
docker container rm powerjob-server
docker container rm powerjob-agent
docker container rm powerjob-agent2
read -r -p "是否重新构建镜像y/n:" rebuild
if [ "$rebuild" = "y" ] || [ "$rebuild" = "Y" ]; then
echo "================== 删除旧镜像 =================="
docker rmi -f tjqq/oms-server:$version
docker rmi -f tjqq/oms-agent:$version
echo "================== 构建 oms-server 镜像 =================="
docker build -t tjqq/oms-server:$version oh-my-scheduler-server/docker/. || exit
echo "================== 构建 oms-agent 镜像 =================="
docker build -t tjqq/oms-agent:$version oh-my-scheduler-worker-agent/. || exit
docker rmi -f tjqq/powerjob-server:$version
docker rmi -f tjqq/powerjob-agent:$version
echo "================== 构建 powerjob-server 镜像 =================="
docker build -t tjqq/powerjob-server:$version powerjob-server/docker/. || exit
echo "================== 构建 powerjob-agent 镜像 =================="
docker build -t tjqq/powerjob-agent:$version powerjob-worker-agent/. || exit
read -r -p "是否正式发布该镜像y/n:" needrelease
if [ "$needrelease" = "y" ] || [ "$needrelease" = "Y" ]; then
read -r -p "三思请确保当前处于已发布的Master分支y/n:" needrelease
if [ "$needrelease" = "y" ] || [ "$needrelease" = "Y" ]; then
echo "================== 正在推送 server 镜像到中央仓库 =================="
docker push tjqq/oms-server:$version
docker push tjqq/powerjob-server:$version
echo "================== 正在推送 agent 镜像到中央仓库 =================="
docker push tjqq/oms-agent:$version
docker push tjqq/powerjob-agent:$version
fi
fi
fi
@ -59,23 +59,23 @@ if [ "$startup" = "y" ] || [ "$startup" = "Y" ]; then
## --name指定容器名称
## -v--volume挂载目录宿主机目录docker内目录写入docker内路径的数据会被直接写到宿主机上常用于日志文件
## --net=host容器和宿主机共享网络容器直接使用宿主机IP性能最好但网络隔离较差
echo "================== 准备启动 oms-server =================="
echo "================== 准备启动 powerjob-server =================="
docker run -d \
--name oms-server \
--name powerjob-server \
-p 7700:7700 -p 10086:10086 \
-e PARAMS="--spring.profiles.active=pre" \
-v ~/docker/oms-server:/root/oms-server -v ~/.m2:/root/.m2 \
tjqq/oms-server:$version
-v ~/docker/powerjob-server:/root/powerjob-server -v ~/.m2:/root/.m2 \
tjqq/powerjob-server:$version
sleep 1
# tail -f -n 1000 ~/docker/oms-server/logs/oms-server-application.log
# tail -f -n 1000 ~/docker/powerjob-server/logs/powerjob-server-application.log
sleep 30
echo "================== 准备启动 oms-client =================="
serverIP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' oms-server)
echo "================== 准备启动 powerjob-client =================="
serverIP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' powerjob-server)
serverAddress="$serverIP:7700"
echo "使用的Server地址$serverAddress"
docker run -d -e PARAMS="--app oms-agent-test --server $serverAddress" -p 27777:27777 --name oms-agent -v ~/docker/oms-agent:/root tjqq/oms-agent:$version
docker run -d -e PARAMS="--app oms-agent-test --server $serverAddress" -p 27778:27777 --name oms-agent2 -v ~/docker/oms-agent2:/root tjqq/oms-agent:$version
docker run -d -e PARAMS="--app powerjob-agent-test --server $serverAddress" -p 27777:27777 --name powerjob-agent -v ~/docker/powerjob-agent:/root tjqq/powerjob-agent:$version
docker run -d -e PARAMS="--app powerjob-agent-test --server $serverAddress" -p 27778:27777 --name powerjob-agent2 -v ~/docker/powerjob-agent2:/root tjqq/powerjob-agent:$version
tail -f -n 100 ~/docker/oms-agent/oms/logs/oms-agent-application.log
tail -f -n 100 ~/docker/powerjob-agent/powerjob/logs/powerjob-agent-application.log
fi

View File

@ -4,9 +4,9 @@ cd `dirname $0`/../.. || exit
echo "================== 构建 jar =================="
mvn clean package -DskipTests -Pdev -e -U
echo "================== 拷贝 jar =================="
/bin/cp -rf oh-my-scheduler-server/target/*.jar others/oms-server.jar
ls -l others/oms-server.jar
/bin/cp -rf powerjob-server/target/*.jar others/powerjob-server.jar
ls -l others/powerjob-server.jar
echo "================== debug 模式启动 =================="
nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar others/oms-server.jar > oms-server.log &
nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar others/powerjob-server.jar > powerjob-server.log &
sleep 100
tail --pid=$$ -f -n 1000 others/oms-server.log
tail --pid=$$ -f -n 1000 others/powerjob-server.log

View File

@ -1,39 +1,37 @@
#!/bin/bash
cd `dirname $0`/../.. || exit
echo "================== 构建 jar =================="
mvn clean package -Pdev -DskipTests -U -e -pl oh-my-scheduler-server,oh-my-scheduler-worker-agent -am
mvn clean package -Pdev -DskipTests -U -e -pl powerjob-server,powerjob-worker-agent -am
echo "================== 拷贝 jar =================="
/bin/cp -rf oh-my-scheduler-server/target/*.jar oh-my-scheduler-server/docker/oms-server.jar
/bin/cp -rf oh-my-scheduler-worker-agent/target/*.jar oh-my-scheduler-worker-agent/oms-agent.jar
ls -l oh-my-scheduler-server/docker/oms-server.jar
ls -l oh-my-scheduler-worker-agent/oms-agent.jar
/bin/cp -rf powerjob-server/target/*.jar powerjob-server/docker/powerjob-server.jar
/bin/cp -rf powerjob-worker-agent/target/*.jar powerjob-worker-agent/powerjob-agent.jar
echo "================== 关闭老应用 =================="
docker stop oms-server
docker stop oms-agent
docker stop oms-agent2
docker stop powerjob-server
docker stop powerjob-agent
docker stop powerjob-agent2
echo "================== 删除老容器 =================="
docker container rm oms-server
docker container rm oms-agent
docker container rm oms-agent2
docker container rm powerjob-server
docker container rm powerjob-agent
docker container rm powerjob-agent2
echo "================== 删除旧镜像 =================="
docker rmi -f tjqq/oms-server:latest
docker rmi -f tjqq/oms-agent:latest
echo "================== 构建 oms-server 镜像 =================="
docker build -t tjqq/oms-server:latest oh-my-scheduler-server/docker/. || exit
echo "================== 构建 oms-agent 镜像 =================="
docker build -t tjqq/oms-agent:latest oh-my-scheduler-worker-agent/. || exit
echo "================== 准备启动 oms-server =================="
docker rmi -f tjqq/powerjob-server:latest
docker rmi -f tjqq/powerjob-agent:latest
echo "================== 构建 powerjob-server 镜像 =================="
docker build -t tjqq/powerjob-server:latest powerjob-server/docker/. || exit
echo "================== 构建 powerjob-agent 镜像 =================="
docker build -t tjqq/powerjob-agent:latest powerjob-worker-agent/. || exit
echo "================== 准备启动 powerjob-server =================="
docker run -d \
--name oms-server \
--name powerjob-server \
-p 7700:7700 -p 10086:10086 \
-e PARAMS="--spring.profiles.active=product --spring.datasource.core.jdbc-url=jdbc:mysql://172.27.147.252:3306/oms-product?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8 --spring.data.mongodb.uri=mongodb://172.27.147.252:27017/oms-product" \
-v ~/docker/oms-server:/root/oms-server -v ~/.m2:/root/.m2 \
tjqq/oms-server:latest
-v ~/docker/powerjob-server:/root/powerjob-server -v ~/.m2:/root/.m2 \
tjqq/powerjob-server:latest
sleep 60
echo "================== 准备启动 oms-client =================="
serverIP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' oms-server)
echo "================== 准备启动 powerjob-client =================="
serverIP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' powerjob-server)
serverAddress="$serverIP:7700"
echo "使用的Server地址$serverAddress"
docker run -d -e PARAMS="--app oms-agent-test --server $serverAddress" -p 27777:27777 --name oms-agent -v ~/docker/oms-agent:/root tjqq/oms-agent:latest
docker run -d -e PARAMS="--app oms-agent-test --server $serverAddress" -p 27778:27777 --name oms-agent2 -v ~/docker/oms-agent2:/root tjqq/oms-agent:latest
docker run -d -e PARAMS="--app powerjob-agent-test --server $serverAddress" -p 27777:27777 --name powerjob-agent -v ~/docker/powerjob-agent:/root tjqq/powerjob-agent:latest
docker run -d -e PARAMS="--app powerjob-agent-test --server $serverAddress" -p 27778:27777 --name powerjob-agent2 -v ~/docker/powerjob-agent2:/root tjqq/powerjob-agent:latest

16
pom.xml
View File

@ -5,10 +5,10 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.kfcfans</groupId>
<artifactId>oh-my-scheduler</artifactId>
<artifactId>powerjob</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<name>oh-my-scheduler</name>
<name>powerjob</name>
<url>https://github.com/KFCFans/OhMyScheduler</url>
<description>Distributed scheduling and execution framework</description>
<licenses>
@ -36,12 +36,12 @@
</developers>
<modules>
<module>oh-my-scheduler-worker</module>
<module>oh-my-scheduler-server</module>
<module>oh-my-scheduler-common</module>
<module>oh-my-scheduler-client</module>
<module>oh-my-scheduler-worker-samples</module>
<module>oh-my-scheduler-worker-agent</module>
<module>powerjob-worker</module>
<module>powerjob-server</module>
<module>powerjob-common</module>
<module>powerjob-client</module>
<module>powerjob-worker-samples</module>
<module>powerjob-worker-agent</module>
</modules>
<properties>

View File

@ -3,18 +3,18 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>oh-my-scheduler</artifactId>
<artifactId>powerjob</artifactId>
<groupId>com.github.kfcfans</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>oh-my-scheduler-client</artifactId>
<version>2.0.0</version>
<artifactId>powerjob-client</artifactId>
<version>3.0.0</version>
<packaging>jar</packaging>
<properties>
<oms.common.version>2.0.0</oms.common.version>
<powerjob.common.version>3.0.0</powerjob.common.version>
<junit.version>5.6.1</junit.version>
</properties>
@ -22,8 +22,8 @@
<!-- oms-common -->
<dependency>
<groupId>com.github.kfcfans</groupId>
<artifactId>oh-my-scheduler-common</artifactId>
<version>${oms.common.version}</version>
<artifactId>powerjob-common</artifactId>
<version>${powerjob.common.version}</version>
</dependency>
<!-- Junit 测试 -->
<dependency>

View File

@ -1,13 +1,13 @@
package com.github.kfcfans.oms.client;
package com.github.kfcfans.powerjob.client;
import com.github.kfcfans.oms.common.InstanceStatus;
import com.github.kfcfans.oms.common.OmsException;
import com.github.kfcfans.oms.common.OpenAPIConstant;
import com.github.kfcfans.oms.common.request.http.SaveJobInfoRequest;
import com.github.kfcfans.oms.common.request.http.SaveWorkflowRequest;
import com.github.kfcfans.oms.common.response.*;
import com.github.kfcfans.oms.common.utils.HttpUtils;
import com.github.kfcfans.oms.common.utils.JsonUtils;
import com.github.kfcfans.powerjob.common.InstanceStatus;
import com.github.kfcfans.powerjob.common.OmsException;
import com.github.kfcfans.powerjob.common.OpenAPIConstant;
import com.github.kfcfans.powerjob.common.request.http.SaveJobInfoRequest;
import com.github.kfcfans.powerjob.common.request.http.SaveWorkflowRequest;
import com.github.kfcfans.powerjob.common.response.*;
import com.github.kfcfans.powerjob.common.utils.HttpUtils;
import com.github.kfcfans.powerjob.common.utils.JsonUtils;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import okhttp3.FormBody;

View File

@ -1,11 +1,11 @@
import com.github.kfcfans.oms.common.ExecuteType;
import com.github.kfcfans.oms.common.ProcessorType;
import com.github.kfcfans.oms.common.TimeExpressionType;
import com.github.kfcfans.oms.common.request.http.SaveJobInfoRequest;
import com.github.kfcfans.oms.common.response.JobInfoDTO;
import com.github.kfcfans.oms.common.response.ResultDTO;
import com.github.kfcfans.oms.client.OhMyClient;
import com.github.kfcfans.oms.common.utils.JsonUtils;
import com.github.kfcfans.powerjob.common.ExecuteType;
import com.github.kfcfans.powerjob.common.ProcessorType;
import com.github.kfcfans.powerjob.common.TimeExpressionType;
import com.github.kfcfans.powerjob.common.request.http.SaveJobInfoRequest;
import com.github.kfcfans.powerjob.common.response.JobInfoDTO;
import com.github.kfcfans.powerjob.common.response.ResultDTO;
import com.github.kfcfans.powerjob.client.OhMyClient;
import com.github.kfcfans.powerjob.common.utils.JsonUtils;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@ -49,7 +49,7 @@ public class TestClient {
@Test
public void testFetchJob() throws Exception {
ResultDTO<JobInfoDTO> fetchJob = ohMyClient.fetchJob(7L);
ResultDTO<JobInfoDTO> fetchJob = ohMyClient.fetchJob(1L);
System.out.println(JsonUtils.toJSONStringUnsafe(fetchJob));
}

View File

@ -1,7 +1,7 @@
import com.github.kfcfans.oms.client.OhMyClient;
import com.github.kfcfans.oms.common.TimeExpressionType;
import com.github.kfcfans.oms.common.model.PEWorkflowDAG;
import com.github.kfcfans.oms.common.request.http.SaveWorkflowRequest;
import com.github.kfcfans.powerjob.client.OhMyClient;
import com.github.kfcfans.powerjob.common.TimeExpressionType;
import com.github.kfcfans.powerjob.common.model.PEWorkflowDAG;
import com.github.kfcfans.powerjob.common.request.http.SaveWorkflowRequest;
import com.google.common.collect.Lists;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

View File

@ -3,14 +3,14 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>oh-my-scheduler</artifactId>
<artifactId>powerjob</artifactId>
<groupId>com.github.kfcfans</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>oh-my-scheduler-common</artifactId>
<version>2.0.0</version>
<artifactId>powerjob-common</artifactId>
<version>3.0.0</version>
<packaging>jar</packaging>
<properties>
@ -62,6 +62,12 @@
<artifactId>akka-serialization-jackson_2.13</artifactId>
<version>${akka.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-slf4j_2.13</artifactId>
<version>${akka.version}</version>
</dependency>
<!-- commons-io -->
<dependency>

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
/**
* 容器常量

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
/**
* 部署环境

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
/**
* 公共常量

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
/**
* OhMyScheduler 运行时异常

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
import java.io.Serializable;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
/**
* OpenAPI 常量

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
/**
* RemoteConstant

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
/**
* 系统生成的任务实例运行结果

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common;
package com.github.kfcfans.powerjob.common;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.model;
package com.github.kfcfans.powerjob.common.model;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.model;
package com.github.kfcfans.powerjob.common.model;
import lombok.Data;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.model;
package com.github.kfcfans.powerjob.common.model;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -21,7 +21,7 @@ public class InstanceDetail implements OmsSerializable {
// 任务整体结束时间可能不存在
private Long finishedTime;
// 任务状态中文
private String status;
private Integer status;
// 任务执行结果可能不存在
private String result;
// TaskTracker地址

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.model;
package com.github.kfcfans.powerjob.common.model;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.model;
package com.github.kfcfans.powerjob.common.model;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.model;
package com.github.kfcfans.powerjob.common.model;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.Data;
/**

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.request;
package com.github.kfcfans.powerjob.common.request;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.request;
package com.github.kfcfans.powerjob.common.request;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.request;
package com.github.kfcfans.powerjob.common.request;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.request;
package com.github.kfcfans.powerjob.common.request;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.Data;
import java.util.List;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.request;
package com.github.kfcfans.powerjob.common.request;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.request;
package com.github.kfcfans.powerjob.common.request;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.Data;

View File

@ -1,8 +1,8 @@
package com.github.kfcfans.oms.common.request;
package com.github.kfcfans.powerjob.common.request;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.oms.common.model.DeployedContainerInfo;
import com.github.kfcfans.oms.common.model.SystemMetrics;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.model.DeployedContainerInfo;
import com.github.kfcfans.powerjob.common.model.SystemMetrics;
import lombok.Data;
import java.util.List;

View File

@ -1,7 +1,7 @@
package com.github.kfcfans.oms.common.request;
package com.github.kfcfans.powerjob.common.request;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.oms.common.model.InstanceLogContent;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.model.InstanceLogContent;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,8 +1,8 @@
package com.github.kfcfans.oms.common.request.http;
package com.github.kfcfans.powerjob.common.request.http;
import com.github.kfcfans.oms.common.ExecuteType;
import com.github.kfcfans.oms.common.ProcessorType;
import com.github.kfcfans.oms.common.TimeExpressionType;
import com.github.kfcfans.powerjob.common.ExecuteType;
import com.github.kfcfans.powerjob.common.ProcessorType;
import com.github.kfcfans.powerjob.common.TimeExpressionType;
import lombok.Data;
import java.util.List;

View File

@ -1,7 +1,7 @@
package com.github.kfcfans.oms.common.request.http;
package com.github.kfcfans.powerjob.common.request.http;
import com.github.kfcfans.oms.common.TimeExpressionType;
import com.github.kfcfans.oms.common.model.PEWorkflowDAG;
import com.github.kfcfans.powerjob.common.TimeExpressionType;
import com.github.kfcfans.powerjob.common.model.PEWorkflowDAG;
import com.google.common.collect.Lists;
import lombok.Data;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.request.http;
package com.github.kfcfans.powerjob.common.request.http;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,7 +1,7 @@
package com.github.kfcfans.oms.common.response;
package com.github.kfcfans.powerjob.common.response;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.oms.common.utils.JsonUtils;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.utils.JsonUtils;
import lombok.*;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.response;
package com.github.kfcfans.powerjob.common.response;
import com.github.kfcfans.oms.common.InstanceStatus;
import com.github.kfcfans.powerjob.common.InstanceStatus;
import lombok.Data;
import java.util.Date;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.response;
package com.github.kfcfans.powerjob.common.response;
import lombok.Data;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.common.response;
package com.github.kfcfans.powerjob.common.response;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.response;
package com.github.kfcfans.powerjob.common.response;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.response;
package com.github.kfcfans.powerjob.common.response;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.utils;
package com.github.kfcfans.powerjob.common.utils;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.utils;
package com.github.kfcfans.powerjob.common.utils;
import okhttp3.OkHttpClient;
import okhttp3.Request;

View File

@ -1,9 +1,9 @@
package com.github.kfcfans.oms.common.utils;
package com.github.kfcfans.powerjob.common.utils;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.kfcfans.oms.common.OmsException;
import com.github.kfcfans.powerjob.common.OmsException;
import org.apache.commons.lang3.exception.ExceptionUtils;
/**

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.utils;
package com.github.kfcfans.powerjob.common.utils;
/**
* 毫无意义就是最大的意义

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.utils;
package com.github.kfcfans.powerjob.common.utils;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.utils;
package com.github.kfcfans.powerjob.common.utils;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.common.utils;
package com.github.kfcfans.powerjob.common.utils;
/**
* Represents a supplier of results.

View File

@ -4,27 +4,27 @@ FROM openjdk:8
MAINTAINER tengjiqi@gmail.com
# 下载并安装 maven
RUN curl -O https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
RUN tar -zxvf apache-maven-3.6.3-bin.tar.gz && mv apache-maven-3.6.3 /opt/oms-maven && rm -rf apache-maven-3.6.3-bin.tar.gz
RUN tar -zxvf apache-maven-3.6.3-bin.tar.gz && mv apache-maven-3.6.3 /opt/powerjob-maven && rm -rf apache-maven-3.6.3-bin.tar.gz
# 替换 maven 配置文件
RUN rm -rf /opt/oms-maven/conf/settings.xml
COPY settings.xml /opt/oms-maven/conf/settings.xml
RUN rm -rf /opt/powerjob-maven/conf/settings.xml
COPY settings.xml /opt/powerjob-maven/conf/settings.xml
# 设置 maven 环境变量maven invoker 读取该变量调用 maven
ENV M2_HOME=/opt/oms-maven
ENV M2_HOME=/opt/powerjob-maven
# 设置时区Debian专用方法
ENV TZ=Asia/Shanghai
# 设置其他环境变量
ENV APP_NAME=oh-my-scheduler-server
ENV APP_NAME=powerjob-server
# 传递 SpringBoot 启动参数
ENV PARAMS=""
# 将应用 jar 包拷入 docker
COPY oms-server.jar /oms-server.jar
COPY powerjob-server.jar /powerjob-server.jar
# 暴露端口HTTP + AKKA
EXPOSE 7700 10086
# 创建 docker 文件目录(盲猜这是用户目录)
RUN mkdir -p /root/oms-server
RUN mkdir -p /root/powerjob-server
# 挂载数据卷,将文件直接输出到宿主机(注意,此处挂载的是匿名卷,即在宿主机位置随机)
VOLUME /root/oms-server
VOLUME /root/powerjob-server
# 启动应用
ENTRYPOINT ["sh","-c","java -jar /oms-server.jar $PARAMS"]
ENTRYPOINT ["sh","-c","java -jar /powerjob-server.jar $PARAMS"]

View File

@ -3,20 +3,20 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>oh-my-scheduler</artifactId>
<artifactId>powerjob</artifactId>
<groupId>com.github.kfcfans</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>oh-my-scheduler-server</artifactId>
<version>2.0.0</version>
<artifactId>powerjob-server</artifactId>
<version>3.0.0</version>
<packaging>jar</packaging>
<properties>
<swagger.version>2.9.2</swagger.version>
<springboot.version>2.2.6.RELEASE</springboot.version>
<oms.common.version>2.0.0</oms.common.version>
<powerjob.common.version>3.0.0</powerjob.common.version>
<mysql.version>8.0.19</mysql.version>
<h2.db.version>1.4.200</h2.db.version>
<zip4j.version>2.5.2</zip4j.version>
@ -34,8 +34,8 @@
<!-- oms-common -->
<dependency>
<groupId>com.github.kfcfans</groupId>
<artifactId>oh-my-scheduler-common</artifactId>
<version>${oms.common.version}</version>
<artifactId>powerjob-common</artifactId>
<version>${powerjob.common.version}</version>
</dependency>
<!-- mysql -->
@ -154,7 +154,7 @@
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${springboot.version}</version>
<configuration>
<mainClass>com.github.kfcfans.oms.server.OhMyApplication</mainClass>
<mainClass>com.github.kfcfans.powerjob.server.OhMyApplication</mainClass>
</configuration>
<executions>
<execution>

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.server;
package com.github.kfcfans.powerjob.server;
import com.github.kfcfans.oms.server.akka.OhMyServer;
import com.github.kfcfans.powerjob.server.akka.OhMyServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

View File

@ -1,13 +1,13 @@
package com.github.kfcfans.oms.server.akka;
package com.github.kfcfans.powerjob.server.akka;
import akka.actor.ActorSelection;
import akka.actor.ActorSystem;
import akka.actor.Props;
import com.github.kfcfans.oms.common.RemoteConstant;
import com.github.kfcfans.oms.common.utils.NetUtils;
import com.github.kfcfans.oms.server.akka.actors.FriendActor;
import com.github.kfcfans.oms.server.akka.actors.ServerActor;
import com.github.kfcfans.oms.server.common.utils.PropertyUtils;
import com.github.kfcfans.powerjob.common.RemoteConstant;
import com.github.kfcfans.powerjob.common.utils.NetUtils;
import com.github.kfcfans.powerjob.server.akka.actors.FriendActor;
import com.github.kfcfans.powerjob.server.akka.actors.ServerActor;
import com.github.kfcfans.powerjob.server.common.utils.PropertyUtils;
import com.google.common.base.Stopwatch;
import com.google.common.collect.Maps;
import com.typesafe.config.Config;

View File

@ -1,11 +1,11 @@
package com.github.kfcfans.oms.server.akka.actors;
package com.github.kfcfans.powerjob.server.akka.actors;
import akka.actor.AbstractActor;
import com.github.kfcfans.oms.common.model.SystemMetrics;
import com.github.kfcfans.oms.common.response.AskResponse;
import com.github.kfcfans.oms.server.akka.requests.FriendQueryWorkerClusterStatusReq;
import com.github.kfcfans.oms.server.akka.requests.Ping;
import com.github.kfcfans.oms.server.service.ha.WorkerManagerService;
import com.github.kfcfans.powerjob.common.model.SystemMetrics;
import com.github.kfcfans.powerjob.common.response.AskResponse;
import com.github.kfcfans.powerjob.server.akka.requests.FriendQueryWorkerClusterStatusReq;
import com.github.kfcfans.powerjob.server.akka.requests.Ping;
import com.github.kfcfans.powerjob.server.service.ha.WorkerManagerService;
import lombok.extern.slf4j.Slf4j;
import java.util.Map;

View File

@ -1,21 +1,21 @@
package com.github.kfcfans.oms.server.akka.actors;
package com.github.kfcfans.powerjob.server.akka.actors;
import akka.actor.AbstractActor;
import com.github.kfcfans.oms.common.InstanceStatus;
import com.github.kfcfans.oms.common.request.ServerDeployContainerRequest;
import com.github.kfcfans.oms.common.request.TaskTrackerReportInstanceStatusReq;
import com.github.kfcfans.oms.common.request.WorkerHeartbeat;
import com.github.kfcfans.oms.common.request.WorkerLogReportReq;
import com.github.kfcfans.oms.common.request.http.WorkerNeedDeployContainerRequest;
import com.github.kfcfans.oms.common.response.AskResponse;
import com.github.kfcfans.oms.common.utils.JsonUtils;
import com.github.kfcfans.oms.common.utils.NetUtils;
import com.github.kfcfans.oms.server.common.utils.SpringUtils;
import com.github.kfcfans.oms.server.persistence.core.model.ContainerInfoDO;
import com.github.kfcfans.oms.server.persistence.core.repository.ContainerInfoRepository;
import com.github.kfcfans.oms.server.service.InstanceLogService;
import com.github.kfcfans.oms.server.service.instance.InstanceManager;
import com.github.kfcfans.oms.server.service.ha.WorkerManagerService;
import com.github.kfcfans.powerjob.common.InstanceStatus;
import com.github.kfcfans.powerjob.common.request.ServerDeployContainerRequest;
import com.github.kfcfans.powerjob.common.request.TaskTrackerReportInstanceStatusReq;
import com.github.kfcfans.powerjob.common.request.WorkerHeartbeat;
import com.github.kfcfans.powerjob.common.request.WorkerLogReportReq;
import com.github.kfcfans.powerjob.common.request.http.WorkerNeedDeployContainerRequest;
import com.github.kfcfans.powerjob.common.response.AskResponse;
import com.github.kfcfans.powerjob.common.utils.JsonUtils;
import com.github.kfcfans.powerjob.common.utils.NetUtils;
import com.github.kfcfans.powerjob.server.common.utils.SpringUtils;
import com.github.kfcfans.powerjob.server.persistence.core.model.ContainerInfoDO;
import com.github.kfcfans.powerjob.server.persistence.core.repository.ContainerInfoRepository;
import com.github.kfcfans.powerjob.server.service.InstanceLogService;
import com.github.kfcfans.powerjob.server.service.instance.InstanceManager;
import com.github.kfcfans.powerjob.server.service.ha.WorkerManagerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.core.env.Environment;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.server.akka.requests;
package com.github.kfcfans.powerjob.server.akka.requests;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.server.akka.requests;
package com.github.kfcfans.powerjob.server.akka.requests;
import com.github.kfcfans.oms.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common;
package com.github.kfcfans.powerjob.server.common;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.config;
package com.github.kfcfans.powerjob.server.common.config;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.config;
package com.github.kfcfans.powerjob.server.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.config;
package com.github.kfcfans.powerjob.server.common.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.config;
package com.github.kfcfans.powerjob.server.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.constans;
package com.github.kfcfans.powerjob.server.common.constans;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.constans;
package com.github.kfcfans.powerjob.server.common.constans;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.constans;
package com.github.kfcfans.powerjob.server.common.constans;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.constans;
package com.github.kfcfans.powerjob.server.common.constans;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.server.common.utils;
package com.github.kfcfans.powerjob.server.common.utils;
import com.github.kfcfans.oms.common.ContainerConstant;
import com.github.kfcfans.powerjob.common.ContainerConstant;
import net.lingala.zip4j.ZipFile;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.utils;
package com.github.kfcfans.powerjob.server.common.utils;
import java.io.Serializable;
import java.text.ParseException;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.utils;
package com.github.kfcfans.powerjob.server.common.utils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
@ -18,7 +18,7 @@ import java.util.UUID;
public class OmsFileUtils {
private static final String USER_HOME = System.getProperty("user.home", "oms");
private static final String COMMON_PATH = USER_HOME + "/oms-server/";
private static final String COMMON_PATH = USER_HOME + "/powerjob-server/";
/**
* 获取在线日志的存放路径

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.utils;
package com.github.kfcfans.powerjob.server.common.utils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.utils;
package com.github.kfcfans.powerjob.server.common.utils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.server.common.utils;
package com.github.kfcfans.powerjob.server.common.utils;
import com.github.kfcfans.oms.common.RemoteConstant;
import com.github.kfcfans.powerjob.common.RemoteConstant;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.net.ntp.NTPUDPClient;

View File

@ -1,10 +1,10 @@
package com.github.kfcfans.oms.server.common.utils;
package com.github.kfcfans.powerjob.server.common.utils;
import com.github.kfcfans.oms.common.InstanceStatus;
import com.github.kfcfans.oms.common.OmsException;
import com.github.kfcfans.oms.common.model.PEWorkflowDAG;
import com.github.kfcfans.oms.common.utils.JsonUtils;
import com.github.kfcfans.oms.server.model.WorkflowDAG;
import com.github.kfcfans.powerjob.common.InstanceStatus;
import com.github.kfcfans.powerjob.common.OmsException;
import com.github.kfcfans.powerjob.common.model.PEWorkflowDAG;
import com.github.kfcfans.powerjob.common.utils.JsonUtils;
import com.github.kfcfans.powerjob.server.model.WorkflowDAG;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;

View File

@ -1,6 +1,6 @@
package com.github.kfcfans.oms.server.common.utils.timewheel;
package com.github.kfcfans.powerjob.server.common.utils.timewheel;
import com.github.kfcfans.oms.common.utils.CommonUtils;
import com.github.kfcfans.powerjob.common.utils.CommonUtils;
import com.google.common.collect.Queues;
import com.google.common.collect.Sets;
import com.google.common.util.concurrent.ThreadFactoryBuilder;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.utils.timewheel;
package com.github.kfcfans.powerjob.server.common.utils.timewheel;
import java.util.Set;
import java.util.concurrent.TimeUnit;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.utils.timewheel;
package com.github.kfcfans.powerjob.server.common.utils.timewheel;
/**
* description

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.common.utils.timewheel;
package com.github.kfcfans.powerjob.server.common.utils.timewheel;
/**
* 时间任务接口

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.model;
package com.github.kfcfans.powerjob.server.model;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.persistence;
package com.github.kfcfans.powerjob.server.persistence;
import lombok.Data;
import lombok.NoArgsConstructor;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.persistence;
package com.github.kfcfans.powerjob.server.persistence;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.persistence.config;
package com.github.kfcfans.powerjob.server.persistence.config;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateSettings;
@ -39,7 +39,7 @@ public class CoreJpaConfig {
@Resource(name = "omsCoreDatasource")
private DataSource omsCoreDatasource;
public static final String CORE_PACKAGES = "com.github.kfcfans.oms.server.persistence.core";
public static final String CORE_PACKAGES = "com.github.kfcfans.powerjob.server.persistence.core";
/**
* 生成配置文件包括 JPA配置文件和Hibernate配置文件相当于一下三个配置

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.persistence.config;
package com.github.kfcfans.powerjob.server.persistence.config;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties;
@ -41,7 +41,7 @@ public class LocalJpaConfig {
@Resource(name = "omsLocalDatasource")
private DataSource omsLocalDatasource;
public static final String LOCAL_PACKAGES = "com.github.kfcfans.oms.server.persistence.local";
public static final String LOCAL_PACKAGES = "com.github.kfcfans.powerjob.server.persistence.local";
private static Map<String, Object> genDatasourceProperties() {

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.persistence.config;
package com.github.kfcfans.powerjob.server.persistence.config;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
@ -19,7 +19,7 @@ import javax.sql.DataSource;
@Configuration
public class MultiDatasourceConfig {
private static final String H2_JDBC_URL = "jdbc:h2:file:~/oms-server/h2/oms_server_db";
private static final String H2_JDBC_URL = "jdbc:h2:file:~/powerjob-server/h2/powerjob_server_db";
@Primary
@Bean("omsCoreDatasource")

View File

@ -1,4 +1,4 @@
package com.github.kfcfans.oms.server.persistence.core.model;
package com.github.kfcfans.powerjob.server.persistence.core.model;
import lombok.Data;

Some files were not shown because too many files have changed in this diff Show More