/** * init */ public void initXxlJobExecutor() { // registry jobhandler XxlJobExecutor.registJobHandler("demoJobHandler", new DemoJobHandler()); XxlJobExecutor.registJobHandler("shardingJobHandler", new ShardingJobHandler()); XxlJobExecutor.registJobHandler("httpJobHandler", new HttpJobHandler()); XxlJobExecutor.registJobHandler("commandJobHandler", new CommandJobHandler()); // load executor prop Properties xxlJobProp = loadProperties("xxl-job-executor.properties"); // init executor xxlJobExecutor = new XxlJobExecutor(); xxlJobExecutor.setAdminAddresses(xxlJobProp.getProperty("xxl.job.admin.addresses")); xxlJobExecutor.setAppName(xxlJobProp.getProperty("xxl.job.executor.appname")); xxlJobExecutor.setIp(xxlJobProp.getProperty("xxl.job.executor.ip")); xxlJobExecutor.setPort(Integer.valueOf(xxlJobProp.getProperty("xxl.job.executor.port"))); xxlJobExecutor.setAccessToken(xxlJobProp.getProperty("xxl.job.accessToken")); xxlJobExecutor.setLogPath(xxlJobProp.getProperty("xxl.job.executor.logpath")); xxlJobExecutor.setLogRetentionDays(Integer.valueOf(xxlJobProp.getProperty("xxl.job.executor.logretentiondays"))); // start executor try { xxlJobExecutor.start(); } catch (Exception e) { logger.error(e.getMessage(), e); } }
public void start() throws Exception { // 从ioc容器中找出所有实现了IJobHandler接口的对象,注册到XxlJobExecutor for (IJobHandler jobHandler : appContext.getBeans(IJobHandler.class)) { // 看看有没有@JobHandler注解 JobHandler annoJobHandler = jobHandler.getClass().getAnnotation(JobHandler.class); // 得到jobHandlerName String jobHandlerName = jobHandler.getClass().getSimpleName(); if (annoJobHandler != null && !Strings.isBlank(annoJobHandler.value())) jobHandlerName = annoJobHandler.value(); // 注册到XxlJobExecutor上下文 XxlJobExecutor.registJobHandler(jobHandlerName, jobHandler); } // 获取XxlJobExecutor,从而触发XxlJobExecutor的初始化 appContext.getIoc().getByType(XxlJobExecutor.class); } }