XXL-JOB整合本地实际项目(spring)案例

XXL-JOB是一个xxl-job 基于Quartz 的分布式任务调度平台,不过,你别管他是基于啥的,先学会用它。
它主要是两个(当然啦,也不仅限于这两个),一个是调度中心,一个是执行器。实际上呢,XXL-JOB是一个独立可运行且有web页面,可进行简单curd操作的项目。百度一大堆包括官网都是整个xxl-job的从Github下载部署到本地,并跑起来,这并不难(微笑脸),可很少有整合自己项目的案例,也没搜到,当时没有头绪,现在整合完了,不就那么回事儿么。。。。。
第一:明确,是通过调度中心(admin)去调度执行器(xxl-job-executor-samples,这里面有四个例子。),
那就很好办了,执行器里去执行我们的计划任务/线程之类的,对吧,那我们就把执行器整合到我们实际项目,调度中心(admin)模块儿,就作为xxl-job项目单独运行,下面请看,本人被快折磨的简单的几个步骤(同时也感谢老同事炕爷大佬):
第一步:给你的项目添加xxl-job的依赖,确保依赖下载成功

 和你下载的xxl-job平台版本一直即可
<dependency>
          <groupId>com.xuxueli</groupId>
          <artifactId>xxl-job-core</artifactId>
          <version>1.9.0</version>
   </dependency>

第二步:复制执行器配置xxl-job-executor.properties文件,到整合spring的的resources文件下,看图:
这里写图片描述
这里面的配置,我就不说了,官网很详细(可能是我这前半生看到的最详细的吧),接下来配置bean,
第三步:


<!--添加扫描properties文件-->
在ApplicationContext.xml中添加一下信息
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="locations">  
            <list>  
                 <value>classpath:jdbc.properties</value>  
                 <!-- 添加扫描 properties文件-->
                 <value>classpath:xxl-job-executor.properties</value>  
            </list>  
        </property>  
    </bean> 


执行器组件,配置内容说明:
<!-- 配置01、JobHandler 扫描路径:自动扫描容器中JobHandler,这个包名要和你自己建的包名相同 -->
<context:component-scan base-package="com.xxl.job.executor.service.jobhandler" />


<!-- 配置02、执行器  这个bean里的包名不用管,你引入了xxl-job-core包,在这个包里可以看到这个类-->
<bean id="xxlJobExecutor" class="com.xxl.job.core.executor.XxlJobExecutor" init-method="start" destroy-method="destroy" >
    <!-- 执行器注册中心地址[选填],为空则关闭自动注册 -->
    <property name="adminAddresses" value="${xxl.job.admin.addresses}" />
    <!-- 执行器AppName[选填],为空则关闭自动注册 -->
    <property name="appName" value="${xxl.job.executor.appname}" />
    <!-- 执行器IP[选填],为空则自动获取 -->
    <property name="ip" value="${xxl.job.executor.ip}" />
    <!-- 执行器端口号[选填],为空则自动获取 -->
    <property name="port" value="${xxl.job.executor.port}" />
    <!-- 访问令牌[选填],非空则进行匹配校验 -->
    <property name="accessToken" value="${xxl.job.accessToken}" />
    <!-- 执行器日志路径[选填],为空则使用默认路径 -->
    <property name="logPath" value="${xxl.job.executor.logpath}" />
    <!-- 日志保存天数[选填],值大于3时生效 -->
    <property name="logRetentionDays" value="${xxl.job.executor.logretentiondays}" />
</bean>

第五步,建立执行器类,继承IJobHandler,并且添加注解@JobHandler(value=”my”),一定要写value,且value值等于页面用BEAN模式运行任务时,JobHandler的名称,看图:
这里写图片描述

@JobHandler(value="my")
@Component
public class MyJobhandler extends IJobHandler {
    @Resource(name = "gzhService")
    private GzhService gzhService;
    @Override
    public ReturnT<String> execute(String param) throws Exception {

        System.out.println("测试!!!!!");

        return SUCCESS;
}

基测试本上算是整合完了,接下来就是测试了,很简单,第一步,新建执行器,
这里写图片描述

第二步,新建任务绑定执行器,
这里写图片描述

第三步运行,点击上图后方的执行,即可,看图xxl-job页面效果和实际后台输出:
这里写图片描述
最后这张图,上面的信息,是我把计划任务放在这里面了,线程执行的输出信息,
这里写图片描述
只要能成功输出测试,灵活百变,哪个任务都呢个通过xxl-job来启动!!!

猜你喜欢

转载自blog.csdn.net/weixin_39433171/article/details/80929270
今日推荐