前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每天20分钟之xxl-job的使用

每天20分钟之xxl-job的使用

原创
作者头像
李子健
发布2022-10-04 18:44:01
7150
发布2022-10-04 18:44:01
举报
文章被收录于专栏:每日一善每日一善

xxl-job的使用

1 配置服务

按照调度器

https://www.xuxueli.com/xxl-job/#2.1%20%E5%88%9D%E5%A7%8B%E5%8C%96%E2%80%9C%E8%B0%83%E5%BA%A6%E6%95%B0%E6%8D%AE%E5%BA%93%E2%80%9D

  1. 运行服务
  2. 配置执行器
  3. 配置bean
image.png
image.png
image.png
image.png
image.png
image.png

2 运行服务

代码语言:txt
复制
    <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>${xxl-job-core.verion}</version>
        </dependency>

配置

代码语言:txt
复制
@Configuration

public class XxlJobConfig {


private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;

@Value("${xxl.job.accessToken}")
private String accessToken;


@Value("${xxl.job.executor.appname}")
private String appname;

@Value("${xxl.job.executor.address}")
private String address;

@Value("${xxl.job.executor.ip}")
private String ip;

@Value("${xxl.job.executor.port}")
private int port;

@Value("${xxl.job.executor.logpath}")
private String logPath;

@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;

    @Bean
    public XxlJobSpringExecutor xxlJobExecutor() {
        logger.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appname);
        xxlJobSpringExecutor.setAddress(address);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
        return xxlJobSpringExecutor;
    }


}

定时任务

代码语言:txt
复制
@Data
@Slf4j
@Component
public class XxlCron {

    private static final String FORMAT_STR_TIME = "yyyy-MM-dd HH:mm:ss";

    private String currentTime = "";


    public static String getCurrentDateSimpleTpl() {
        return getCurrentDateSimpleTpl(FORMAT_STR_TIME, System.currentTimeMillis()/1000);
    }

    private static String getCurrentDateSimpleTpl(String tpl, long timestamp) {
        LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(timestamp, 0, ZoneOffset.ofHours(8));
        DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern(tpl);
        return localDateTime.format(formatter2);
    }

    @XxlJob("testRunXxl")
    public ReturnT<String> execute() {
        XxlJobHelper.log("XXL-JOB testRunXxl start");

        String currentTime = getCurrentDateSimpleTpl();

        log.info("currentTime:"+currentTime);
        this.currentTime = currentTime;
        return ReturnT.SUCCESS;
    }
}

调用服务代码

代码语言:txt
复制
@Slf4j
@Api(tags={"用户接口"})
@RestController
public class UserController {


    @Autowired
    XxlCron xxlCron;


    @GetMapping("/info")
    public String configInfo2() {
        return xxlCron.getCurrentTime();
    }


}

运行服务

http://127.0.0.1:7190/info

具体代码看这个即可:

https://github.com/beckbikang/spring-cloud/tree/main/kcron/kxxljob

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • xxl-job的使用
    • 1 配置服务
      • 2 运行服务
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档