All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.noear.solon.cloud.extend.xxljob.XPluginImp Maven / Gradle / Ivy

package org.noear.solon.cloud.extend.xxljob;

import com.xxl.job.core.executor.XxlJobExecutor;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.noear.solon.SolonApp;
import org.noear.solon.Utils;
import org.noear.solon.cloud.CloudManager;
import org.noear.solon.cloud.extend.xxljob.service.CloudJobServiceImpl;
import org.noear.solon.core.Aop;
import org.noear.solon.core.AopContext;
import org.noear.solon.core.Plugin;

/**
 * @author noear
 * @since 1.4
 */
public class XPluginImp implements Plugin {
    @Override
    public void start(AopContext context) {
        if (Utils.isEmpty(XxlJobProps.instance.getServer())) {
            return;
        }

        if (XxlJobProps.instance.getJobEnable()) {
            //注册Job服务
            CloudManager.register(CloudJobServiceImpl.instance);

            //注册构建器和提取器
            context.beanExtractorAdd(XxlJob.class, new XxlJobExtractor());

            //构建自动配置
            context.beanMake(XxlJobAutoConfig.class);

            context.beanOnloaded((ctx) -> {
                try {
                    XxlJobExecutor executor = ctx.wrapAndPut(XxlJobExecutor.class).get();
                    executor.start();
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            });
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy