自学内容网 自学内容网

arthas -- xxljob本地调试

方案一:测试类

package cn.wanda.wic.content.job.xxljob;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;

@SpringBootTest
public class ShopResourceMigrationJobTest {
    @Resource
    private ShopResourceMigrationJob shopResourceMigrationJob;

    @Test
    public void testApprovalCompensationHandler_noInstances() {
        shopResourceMigrationJob.execute();
        System.out.println("执行完成");
    }

}

注意点:测试类包路径,需要与被测试类相同

缺点:每运行一次,需要启动一次项目(需要频繁启动项目,耗时长)

方案二:arthas

优点:一次启动服务,终生可用

缺点:对开发人员有一定要求

以下是具体步骤:

  1. 安装 IDEA Arthas 插件 -- arthas idea

  1. 添加 pom 依赖
<dependency>
    <groupId>com.taobao.arthas</groupId>
    <artifactId>arthas-spring-boot-starter</artifactId>
    <version>4.0.1</version>
</dependency>

最新版本可查阅:Maven Central: com.taobao.arthas:arthas-spring-boot-starter

  1. 添加 上下文配置类
package cn.wanda.wic.content.job.utils;

import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

/**
 * @author chenlong
 */
@Component
public class ApplicationContextProvider1 implements ApplicationContextAware {
    private static ApplicationContext context;

    public ApplicationContext getApplicationContext() {
        return context;
    }

    @Override
    public void setApplicationContext(ApplicationContext ctx) {
        context = ctx;
    }
}

之所以命名 ApplicationContextProvider1 是因为源码中包含 ApplicationContextProvider,不然会导入该类跳过执行

原因不明,待研究(大佬可补充说明)

  1. 引入上下文类到 arthas

复制路径:@cn.wanda.wic.content.job.utils.ApplicationContextProvider1@context

粘贴:

  1. 启动服务(JRebel插件debug启动,好像普通模式启动会无法获取上下文,没尝试过)

  1. 打开 arthas 本地控制台

http://localhost:8563/

  1. 复制方法执行命令

  1. 执行

  1. 查看idea控制台,完结撒花~

参考资料

使用Arthas显式执行代码,避免重启应用,10倍提升本地研发效率 · Issue #1823 · alibaba/arthas · GitHub

插件文档:arthas idea plugin 配置 · 语雀


原文地址:https://blog.csdn.net/RAXCL/article/details/142423389

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!