添加 solon 的集成适配及示例

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

@ -31,7 +31,7 @@
<spring.version>5.3.3</spring.version> <spring.version>5.3.3</spring.version>
<spring-boot.version>2.4.2</spring-boot.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> <mybatis-spring-boot-starter.version>2.1.4</mybatis-spring-boot-starter.version>
<mysql-connector-java.version>8.0.23</mysql-connector-java.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.executor.XxlJobExecutor;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.solon.service.CloudJobServiceImpl;
import org.noear.solon.SolonApp; import org.noear.solon.SolonApp;
import org.noear.solon.Utils;
import org.noear.solon.cloud.CloudManager; import org.noear.solon.cloud.CloudManager;
import com.xxl.job.solon.service.CloudJobServiceImpl;
import org.noear.solon.core.Aop; import org.noear.solon.core.Aop;
import org.noear.solon.core.Plugin; import org.noear.solon.core.Plugin;
@ -15,26 +16,28 @@ import org.noear.solon.core.Plugin;
public class XPluginImp implements Plugin { public class XPluginImp implements Plugin {
@Override @Override
public void start(SolonApp app) { public void start(SolonApp app) {
if (XxljobProps.instance.getJobEnable() == false) { if (Utils.isEmpty(XxlJobProps.instance.getServer())) {
return; return;
} }
//注册Job服务 if (XxlJobProps.instance.getJobEnable()) {
CloudManager.register(CloudJobServiceImpl.instance); //注册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(() -> { Aop.beanOnloaded(() -> {
try { try {
XxlJobExecutor executor = Aop.get(XxlJobExecutor.class); XxlJobExecutor executor = Aop.get(XxlJobExecutor.class);
executor.start(); executor.start();
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
}); });
}
} }
} }

@ -49,7 +49,7 @@ public class XxlJobAutoConfig {
logger.info(">>>>>>>>>>> xxl-job config init."); logger.info(">>>>>>>>>>> xxl-job config init.");
if(Utils.isEmpty(adminAddresses)){ if(Utils.isEmpty(adminAddresses)){
adminAddresses = XxljobProps.instance.getJobServer(); adminAddresses = XxlJobProps.instance.getJobServer();
} }
if(Utils.isEmpty(appname)){ if(Utils.isEmpty(appname)){
@ -73,7 +73,7 @@ public class XxlJobAutoConfig {
} }
if(Utils.isEmpty(accessToken)) { 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; 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"); public static final CloudProps instance = new CloudProps("xxljob");
} }

@ -12,7 +12,7 @@ public class CloudJobServiceImpl implements CloudJobService {
public static final CloudJobService instance = new CloudJobServiceImpl(); public static final CloudJobService instance = new CloudJobServiceImpl();
@Override @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)); XxlJobExecutor.registJobHandler(name, new CloudJobHanderProxy(handler));
return true; return true;
} }

Loading…
Cancel
Save