添加 solon 的集成适配及示例

pull/25/head
noear 4 years ago
parent 525cf9239a
commit 11adcba3a7

@ -1,5 +1,6 @@
package com.xxl.job.core.executor.impl;
import com.xxl.job.core.executor.XxlJobExecutor;
import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;
@ -7,6 +8,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* auto config XxlJobExecutor
*
* @author noear 2021/5/22 created
*/
@Configuration
@ -38,7 +41,7 @@ public class XxlJobSolonAutoConfig {
private int logRetentionDays;
@Bean
public XxlJobSolonExecutor xxlJobExecutor() {
public XxlJobExecutor xxlJobExecutor() {
logger.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSolonExecutor executor = new XxlJobSolonExecutor();

@ -15,7 +15,7 @@ public class XxlJobSolonExecutor extends XxlJobExecutor {
@Override
public void start() throws Exception {
// refresh GlueFactory
// refresh GlueFactory (add solon inject)
GlueFactory.refreshInstance(2);
// super start

@ -17,13 +17,16 @@ import java.lang.reflect.Method;
public class XxlJobSolonPlugin implements Plugin, BeanExtractor<XxlJob> {
@Override
public void start(SolonApp app) {
//add extractor for bean method
Aop.context().beanExtractorAdd(XxlJob.class, this);
Aop.context().beanMake(XxlJobSolonAutoConfig.class);
XxlJobSolonExecutor executor = Aop.get(XxlJobSolonExecutor.class);
Aop.context().beanMake(XxlJobSolonAutoConfig.class);
Aop.beanOnloaded(() -> {
try {
//
XxlJobExecutor executor = Aop.get(XxlJobExecutor.class);
executor.start();
} catch (Exception e) {
throw new RuntimeException(e);

@ -35,7 +35,7 @@
<!-- spring-boot-starter-web (spring-webmvc + tomcat) -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-api</artifactId>
<artifactId>solon</artifactId>
</dependency>
<dependency>

@ -1,63 +0,0 @@
package com.xxl.job.executor.config;
import com.xxl.job.core.executor.impl.XxlJobSolonExecutor;
import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* xxl-job config
*
* @author xuxueli 2017-04-28
* @author noear 2021/5/22 created
*/
@Configuration
public class XxlJobConfig {
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
@Inject("${xxl.job.admin.addresses}")
private String adminAddresses;
@Inject("${xxl.job.accessToken}")
private String accessToken;
@Inject("${xxl.job.executor.appname}")
private String appname;
@Inject("${xxl.job.executor.address}")
private String address;
@Inject("${xxl.job.executor.ip}")
private String ip;
@Inject("${xxl.job.executor.port}")
private int port;
@Inject("${xxl.job.executor.logpath}")
private String logPath;
@Inject("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean
public XxlJobSolonExecutor xxlJobExecutor() {
logger.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSolonExecutor executor = new XxlJobSolonExecutor();
executor.setAdminAddresses(adminAddresses);
executor.setAppname(appname);
executor.setAddress(address);
executor.setIp(ip);
executor.setPort(port);
executor.setAccessToken(accessToken);
executor.setLogPath(logPath);
executor.setLogRetentionDays(logRetentionDays);
return executor;
}
}

@ -19,7 +19,7 @@ import java.util.concurrent.TimeUnit;
* XxlJobBean
*
*
* 1Spring BeanJob
* 1Solon BeanJob
* 2Job "@XxlJob(value="jobhandler", init = "JobHandler", destroy = "JobHandler")"valueJobHandler
* 3 "XxlJobHelper.log"
* 4 "成功" "XxlJobHelper.handleFail/handleSuccess"
@ -250,5 +250,4 @@ public class SampleXxlJob {
logger.info("destory");
}
}

Loading…
Cancel
Save