|
@@ -0,0 +1,55 @@
|
|
|
+package com.xuxueli.executor.sample.nutz;
|
|
|
+
|
|
|
+import org.nutz.ioc.IocException;
|
|
|
+import org.nutz.ioc.impl.PropertiesProxy;
|
|
|
+import org.nutz.log.Log;
|
|
|
+import org.nutz.log.Logs;
|
|
|
+import org.nutz.mvc.NutConfig;
|
|
|
+import org.nutz.mvc.Setup;
|
|
|
+
|
|
|
+import com.xxl.job.core.executor.XxlJobExecutor;
|
|
|
+import com.xxl.job.core.handler.IJobHandler;
|
|
|
+
|
|
|
+/**
|
|
|
+ *
|
|
|
+ * @author 邓华锋
|
|
|
+ *
|
|
|
+ */
|
|
|
+public class MainSetup implements Setup {
|
|
|
+ public static final Log log = Logs.get();
|
|
|
+ XxlJobExecutor xxlJobExecutor = null;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void init(NutConfig cfg) {
|
|
|
+ // 通用注册IJobHandler
|
|
|
+ String[] names = cfg.getIoc().getNamesByType(IJobHandler.class);
|
|
|
+ for (String name : names) {
|
|
|
+ XxlJobExecutor.registJobHandler(name, cfg.getIoc().get(IJobHandler.class, name));
|
|
|
+ }
|
|
|
+ // load executor prop
|
|
|
+ PropertiesProxy xxlJobProp = cfg.getIoc().get(PropertiesProxy.class, "conf");
|
|
|
+
|
|
|
+ // init executor
|
|
|
+ xxlJobExecutor = new XxlJobExecutor();
|
|
|
+ xxlJobExecutor.setIp(xxlJobProp.get("xxl.job.executor.ip"));
|
|
|
+ xxlJobExecutor.setPort(xxlJobProp.getInt("xxl.job.executor.port"));
|
|
|
+ xxlJobExecutor.setAppName(xxlJobProp.get("xxl.job.executor.appname"));
|
|
|
+ xxlJobExecutor.setAdminAddresses(xxlJobProp.get("xxl.job.admin.addresses"));
|
|
|
+ xxlJobExecutor.setLogPath(xxlJobProp.get("xxl.job.executor.logpath"));
|
|
|
+ xxlJobExecutor.setAccessToken(xxlJobProp.get("xxl.job.accessToken"));
|
|
|
+
|
|
|
+ // start executor
|
|
|
+ try {
|
|
|
+ xxlJobExecutor.start();
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void destroy(NutConfig cfg) {
|
|
|
+ if (xxlJobExecutor != null) {
|
|
|
+ xxlJobExecutor.destroy();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|