开发者社区> 问答> 正文

XXL-JOB demo该如何使用?

XXL-JOB demo该如何使用?

展开
收起
kun坤 2020-04-23 16:23:36 1446 0
1 条回答
写回答
取消 提交回答
  • 示例1:实现简单任务配置,只需要继承IJobHandler 抽象类,并声明注解

    @JobHandler(value="offlineTaskJobHandler") ,实现业务逻辑即可。(注:此次引入了dubbo,后文介绍)。

    
    @JobHandler(value="offlineTaskJobHandler")
    @Component
    public class OfflineTaskJobHandler extends IJobHandler {
      
       @Reference(check = false,version = "cms-dev",group="cms-service")
       private OfflineTaskExecutorFacade offlineTaskExecutorFacade;
      
       @Override
       public ReturnT<String> execute(String param) throws Exception {
          XxlJobLogger.log(" offlineTaskJobHandler start.");
      
          try {
             offlineTaskExecutorFacade.executeOfflineTask();
          } catch (Exception e) {
             XxlJobLogger.log("offlineTaskJobHandler-->exception." , e);
             return FAIL;
          }
      
          XxlJobLogger.log("XXL-JOB, offlineTaskJobHandler end.");
          return SUCCESS;
       }
    }
    

    示例2:分片广播任务。

    @JobHandler(value="shardingJobHandler")
    @Service
    public class ShardingJobHandler extends IJobHandler {
      
       @Override
       public ReturnT<String> execute(String param) throws Exception {
      
          // 分片参数
          ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
          XxlJobLogger.log("分片参数:当前分片序号 = {}, 总分片数 = {}", shardingVO.getIndex(), shardingVO.getTotal());
      
          // 业务逻辑
          for (int i = 0; i < shardingVO.getTotal(); i++) {
             if (i == shardingVO.getIndex()) {
                XxlJobLogger.log("第 {} 片, 命中分片开始处理", i);
             } else {
                XxlJobLogger.log("第 {} 片, 忽略", i);
             }
          }
      
          return SUCCESS;
       }
    }
    
    
    2020-04-23 16:24:13
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
gohbase :HBase go客户端 立即下载
Build Your Next Apache Spark Job in .NET Using Mobius 立即下载
Monitoring the Dynamic Resource Usage of Scala and Python Spark Jobs in Yarn 立即下载

相关实验场景

更多