添加 solon 的集成适配及示例

pull/29/head
noear 4 years ago
parent 52816c11d3
commit 8bccc85b0c

@ -31,7 +31,7 @@
<spring.version>5.3.3</spring.version>
<spring-boot.version>2.4.2</spring-boot.version>
<solon.version>1.4.9</solon.version>
<solon.version>1.5.15</solon.version>
<mybatis-spring-boot-starter.version>2.1.4</mybatis-spring-boot-starter.version>
<mysql-connector-java.version>8.0.23</mysql-connector-java.version>

@ -2,9 +2,10 @@ package com.xxl.job.solon;
import com.xxl.job.core.executor.XxlJobExecutor;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.solon.service.CloudJobServiceImpl;
import org.noear.solon.SolonApp;
import org.noear.solon.Utils;
import org.noear.solon.cloud.CloudManager;
import com.xxl.job.solon.service.CloudJobServiceImpl;
import org.noear.solon.core.Aop;
import org.noear.solon.core.Plugin;
@ -15,26 +16,28 @@ import org.noear.solon.core.Plugin;
public class XPluginImp implements Plugin {
@Override
public void start(SolonApp app) {
if (XxljobProps.instance.getJobEnable() == false) {
if (Utils.isEmpty(XxlJobProps.instance.getServer())) {
return;
}
//注册Job服务
CloudManager.register(CloudJobServiceImpl.instance);
if (XxlJobProps.instance.getJobEnable()) {
//注册Job服务
CloudManager.register(CloudJobServiceImpl.instance);
//注册构建器和提取器
Aop.context().beanExtractorAdd(XxlJob.class, new XxlJobExtractor());
//注册构建器和提取器
Aop.context().beanExtractorAdd(XxlJob.class, new XxlJobExtractor());
//构建自动配置
Aop.context().beanMake(XxlJobAutoConfig.class);
//构建自动配置
Aop.context().beanMake(XxlJobAutoConfig.class);
Aop.beanOnloaded(() -> {
try {
XxlJobExecutor executor = Aop.get(XxlJobExecutor.class);
executor.start();
} catch (Exception e) {
throw new RuntimeException(e);
}
});
Aop.beanOnloaded(() -> {
try {
XxlJobExecutor executor = Aop.get(XxlJobExecutor.class);
executor.start();
} catch (Exception e) {
throw new RuntimeException(e);
}
});
}
}
}

@ -49,7 +49,7 @@ public class XxlJobAutoConfig {
logger.info(">>>>>>>>>>> xxl-job config init.");
if(Utils.isEmpty(adminAddresses)){
adminAddresses = XxljobProps.instance.getJobServer();
adminAddresses = XxlJobProps.instance.getJobServer();
}
if(Utils.isEmpty(appname)){
@ -73,7 +73,7 @@ public class XxlJobAutoConfig {
}
if(Utils.isEmpty(accessToken)) {
accessToken = XxljobProps.instance.getPassword();
accessToken = XxlJobProps.instance.getPassword();
}

@ -3,8 +3,9 @@ package com.xxl.job.solon;
import org.noear.solon.cloud.CloudProps;
/**
* @author noear 2021/5/25 created
* @author noear
* @since 1.4
*/
public class XxljobProps {
public class XxlJobProps {
public static final CloudProps instance = new CloudProps("xxljob");
}

@ -12,7 +12,7 @@ public class CloudJobServiceImpl implements CloudJobService {
public static final CloudJobService instance = new CloudJobServiceImpl();
@Override
public boolean register(String name, String description, Handler handler) {
public boolean register(String name, String cron7x, String description, Handler handler) {
XxlJobExecutor.registJobHandler(name, new CloudJobHanderProxy(handler));
return true;
}

Loading…
Cancel
Save