package com.xxl.job.executor.sample.frameless.config;
|
|
import com.xxl.job.executor.sample.frameless.jobhandler.SampleXxlJob;
|
import com.xxl.job.core.executor.impl.XxlJobSimpleExecutor;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
import java.io.IOException;
|
import java.io.InputStreamReader;
|
import java.util.Arrays;
|
import java.util.Properties;
|
|
/**
|
* @author xuxueli 2018-10-31 19:05:43
|
*/
|
public class FrameLessXxlJobConfig {
|
private static Logger logger = LoggerFactory.getLogger(FrameLessXxlJobConfig.class);
|
|
|
private static FrameLessXxlJobConfig instance = new FrameLessXxlJobConfig();
|
public static FrameLessXxlJobConfig getInstance() {
|
return instance;
|
}
|
|
|
private XxlJobSimpleExecutor xxlJobExecutor = null;
|
|
/**
|
* init
|
*/
|
public void initXxlJobExecutor() {
|
|
// load executor prop
|
Properties xxlJobProp = loadProperties("xxl-job-executor.properties");
|
|
// init executor
|
xxlJobExecutor = new XxlJobSimpleExecutor();
|
xxlJobExecutor.setAdminAddresses(xxlJobProp.getProperty("xxl.job.admin.addresses"));
|
xxlJobExecutor.setAccessToken(xxlJobProp.getProperty("xxl.job.accessToken"));
|
xxlJobExecutor.setAppname(xxlJobProp.getProperty("xxl.job.executor.appname"));
|
xxlJobExecutor.setAddress(xxlJobProp.getProperty("xxl.job.executor.address"));
|
xxlJobExecutor.setIp(xxlJobProp.getProperty("xxl.job.executor.ip"));
|
xxlJobExecutor.setPort(Integer.valueOf(xxlJobProp.getProperty("xxl.job.executor.port")));
|
xxlJobExecutor.setLogPath(xxlJobProp.getProperty("xxl.job.executor.logpath"));
|
xxlJobExecutor.setLogRetentionDays(Integer.valueOf(xxlJobProp.getProperty("xxl.job.executor.logretentiondays")));
|
|
// registry job bean
|
xxlJobExecutor.setXxlJobBeanList(Arrays.asList(new SampleXxlJob()));
|
|
// start executor
|
try {
|
xxlJobExecutor.start();
|
} catch (Exception e) {
|
logger.error(e.getMessage(), e);
|
}
|
}
|
|
/**
|
* destory
|
*/
|
public void destoryXxlJobExecutor() {
|
if (xxlJobExecutor != null) {
|
xxlJobExecutor.destroy();
|
}
|
}
|
|
|
public static Properties loadProperties(String propertyFileName) {
|
InputStreamReader in = null;
|
try {
|
ClassLoader loder = Thread.currentThread().getContextClassLoader();
|
|
in = new InputStreamReader(loder.getResourceAsStream(propertyFileName), "UTF-8");;
|
if (in != null) {
|
Properties prop = new Properties();
|
prop.load(in);
|
return prop;
|
}
|
} catch (IOException e) {
|
logger.error("load {} error!", propertyFileName);
|
} finally {
|
if (in != null) {
|
try {
|
in.close();
|
} catch (IOException e) {
|
logger.error("close {} error!", propertyFileName);
|
}
|
}
|
}
|
return null;
|
}
|
|
}
|