Commit 74f3a090 by liyuan

Merge remote-tracking branch 'origin/developer' into developer

parents d184ff1f ac2b1ef7
package com.byit.job.enums;
/**
* @author huangfu
*/
public enum GlueTypeEnum {
BEAN("BEAN", false, null, null),
GLUE_GROOVY("GLUE(Java)", false, null, null),
GLUE_SHELL("GLUE(Shell)", true, "bash", ".sh"),
GLUE_PYTHON("GLUE(Python)", true, "python", ".py"),
GLUE_PHP("GLUE(PHP)", true, "php", ".php"),
GLUE_NODEJS("GLUE(Nodejs)", true, "node", ".js"),
GLUE_POWERSHELL("GLUE(PowerShell)", true, "powershell", ".ps1");
private String desc;
private boolean isScript;
private String cmd;
private String suffix;
private GlueTypeEnum(String desc, boolean isScript, String cmd, String suffix) {
this.desc = desc;
this.isScript = isScript;
this.cmd = cmd;
this.suffix = suffix;
}
public String getDesc() {
return desc;
}
public boolean isScript() {
return isScript;
}
public String getCmd() {
return cmd;
}
public String getSuffix() {
return suffix;
}
public static GlueTypeEnum match(String name){
for (GlueTypeEnum item: GlueTypeEnum.values()) {
if (item.name().equals(name)) {
return item;
}
}
return null;
}
}
...@@ -6,7 +6,7 @@ import com.byit.job.model.ReturnResult; ...@@ -6,7 +6,7 @@ import com.byit.job.model.ReturnResult;
/** /**
* @program: byit-myth-job->GlueJobHandler * @program: byit-myth-job->GlueJobHandler
* @description: 任务节点处理程序 * @description: JAVA任务节点处理程序
* @author: huangfu * @author: huangfu
* @date: 2019/11/13 16:23 * @date: 2019/11/13 16:23
**/ **/
......
package com.byit.job.handler.impl;
import com.byit.job.enums.GlueTypeEnum;
import com.byit.job.handler.BaseJobHandler;
import com.byit.job.model.ReturnResult;
/**
* @program: byit-myth-job->ScriptJobHandler
* @description: 解析脚本的专用类
* @author: huangfu
* @date: 2019/11/14 14:46
**/
public class ScriptJobHandler extends BaseJobHandler {
private int jobId;
private String scriptSource;
private long scriptUpdateTime;
private GlueTypeEnum glueTypeEnum;
public ScriptJobHandler(int jobId, String scriptSource, long scriptUpdateTime, GlueTypeEnum glueTypeEnum) {
this.jobId = jobId;
this.scriptSource = scriptSource;
this.scriptUpdateTime = scriptUpdateTime;
this.glueTypeEnum = glueTypeEnum;
}
@Override
public ReturnResult<String> execute(String param) throws Exception {
System.out.println("-----------------------脚本执行-------------------");
return ReturnResult.SUCCESS;
}
}
package com.byit.api; package com.byit.api;
import com.byit.job.handler.impl.GlueJobHandler;
import com.byit.job.handler.interfaces.IJobHandler;
import com.byit.job.model.ReturnResult; import com.byit.job.model.ReturnResult;
/** /**
* @program: byit-myth-job->JavaBeanExcutor * @program: byit-myth-job->ExecutorServer
* @description: API外部调用接口 * @description: API外部调用接口
* @author: huangfu * @author: huangfu
* @date: 2019/11/13 16:52 * @date: 2019/11/13 16:52
**/ **/
public interface JavaBeanExecutor {
public interface ExecutorServer {
/** /**
* 执行接口 * 执行接口
* @param param * @param iJobHandler 具体任务
* @param param 执行参数
* @return * @return
*/ */
ReturnResult<String> execute(String param); ReturnResult<String> execute(IJobHandler iJobHandler,String param) throws Exception;
} }
...@@ -10,7 +10,27 @@ ...@@ -10,7 +10,27 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>myth-job</groupId> <groupId>myth-job</groupId>
<artifactId>myth-job-server</artifactId> <artifactId>myth-executor-server</artifactId>
<dependencies>
<dependency>
<groupId>myth-job</groupId>
<artifactId>myth-executor-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>myth-job</groupId>
<artifactId>myth-executor-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>myth-job</groupId>
<artifactId>byit-myth-rpc</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project> </project>
\ No newline at end of file
package com.byit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @program: byit-myth-job->ExecutorApplication
* @description: 执行器启动的启动入口
* @author: huangfu
* @date: 2019/11/14 16:03
**/
@SpringBootApplication
public class ExecutorApplication {
public static void main(String[] args) {
SpringApplication.run(ExecutorApplication.class,args);
}
}
package com.byit.conf;
import com.byit.rpc.registry.impl.RegistryServiceRegistry;
import com.byit.rpc.remoting.provider.impl.RpcSpringProviderFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
/**
* @program: byit-myth-job->RpcConfig
* @description: Rpc通讯的配置类
* @author: huangfu
* @date: 2019/11/14 15:18
**/
@Configuration
@Slf4j
public class ExecutorRpcConfig {
@Value("${myth-rpc.remoting.port}")
private int port;
@Value("${myth-rpc.registry.address}")
private String address;
@Value("${myth-rpc.registry.env}")
private String env;
@Value("${myth-rpc.registry.biz}")
private String biz;
@Bean
public RpcSpringProviderFactory rpcSpringProviderFactory(){
RpcSpringProviderFactory providerFactory = new RpcSpringProviderFactory();
providerFactory.setPort(port);
providerFactory.setServiceRegistryClass(RegistryServiceRegistry.class);
providerFactory.setServiceRegistryParam(new HashMap<String,String>(){{
put(RegistryServiceRegistry.REGISTRY_ADDRESS, address);
put(RegistryServiceRegistry.BIZ, biz);
put(RegistryServiceRegistry.ENV, env);
}});
log.info(">>>>>>>>>>>>>>> 执行器服务向注册中心注册成功");
return providerFactory;
}
}
package com.byit.executor;
import com.byit.api.ExecutorServer;
import com.byit.job.handler.interfaces.IJobHandler;
import com.byit.job.model.ReturnResult;
import com.byit.rpc.remoting.provider.annotation.RpcService;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
/**
* @program: byit-myth-job->JavaBeanExcutor
* @description: 解释执行器
* @author: huangfu
* @date: 2019/11/14 11:16
**/
@RpcService
@Service
public class ExecutorServerImpl implements ExecutorServer {
@Override
public ReturnResult<String> execute(IJobHandler iJobHandler,String param) throws Exception {
return iJobHandler.execute(param);
}
}
# myth-rpc
myth-rpc:
remoting:
port: 7001
registry:
address: http://localhost:8080/myth-register
env: dev
biz: ${spring.application.name}
\ No newline at end of file
server:
port: 7000
spring:
profiles:
active: dev
application:
name: myth-job-server
logging:
config: classpath:logback.xml
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 引用现有配置 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<!-- 控制台 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
\ No newline at end of file
...@@ -14,14 +14,14 @@ ...@@ -14,14 +14,14 @@
<modules> <modules>
<module>myth-executor-api</module> <module>myth-executor-api</module>
<module>myth-executor-client</module> <module>myth-executor-client</module>
<module>myth-job-server</module> <module>myth-executor-server</module>
</modules> </modules>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
<module>byit-myth-core</module> <module>byit-myth-core</module>
<module>byit-myth-executor</module> <module>byit-myth-executor</module>
<module>byit-myth-rpc</module> <module>byit-myth-rpc</module>
<module>demo-client</module>
</modules> </modules>
<parent> <parent>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment