![](../../asset/images/user/bgImg_default.jpeg)
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
服务端启动流程首先找到配置类 XxlJobAdminConfig可以发现该类实现InitializingBean接口,这里直接看 afterPropertiesSet方法即可。@Overridepublic void afterPropertiesSet() throws Exception {//利用静态声明的只会加载一次的特性,初始化一个单例对象。adminConfig = this;//初始
![文章图片](https://img-blog.csdnimg.cn/d91dc33e4cf14885a63604a5ac05a511.png)
单元测试是指对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类。驱动代码是用来调用被测函数的,而桩代码和 Mock 代码是用来代替被测函数调用的真实代码的。Stub(桩对象):Stub通常用于替代测试对象的某些部分,以便进行单元测试等测试。例如,当被测代码需要访问外部数据源或者调用其他函数时,我们可以使用Stub来模拟这些依赖项的行为
![文章图片](https://img-blog.csdnimg.cn/1df46a2d12944c329239131ceae539ac.png)
服务端启动流程首先找到配置类 XxlJobAdminConfig可以发现该类实现InitializingBean接口,这里直接看 afterPropertiesSet方法即可。@Overridepublic void afterPropertiesSet() throws Exception {//利用静态声明的只会加载一次的特性,初始化一个单例对象。adminConfig = this;//初始
![文章图片](https://img-blog.csdnimg.cn/d91dc33e4cf14885a63604a5ac05a511.png)
问题定位:端口占用导致超时。通过分析堆栈,发现所有的线程都阻塞在一块了。初步怀疑tomcat连接数少了,后来看到都处于wait状态。那么就怀疑线程挣抢原因,top命令查看cpu没高峰,而且tomcat最大才10个。定位redis 游标scan命令,但是db库数据比较少,原因排除。接着怀疑xxljob频繁访问造成的,有几个一秒执行的job。然后发现堆栈信息中的确xxljob在run。查看xxljob
![文章图片](https://img-blog.csdnimg.cn/1bd745359de74561bb9fce8e0e037e46.png)
问题定位:端口占用导致超时。通过分析堆栈,发现所有的线程都阻塞在一块了。初步怀疑tomcat连接数少了,后来看到都处于wait状态。那么就怀疑线程挣抢原因,top命令查看cpu没高峰,而且tomcat最大才10个。定位redis 游标scan命令,但是db库数据比较少,原因排除。接着怀疑xxljob频繁访问造成的,有几个一秒执行的job。然后发现堆栈信息中的确xxljob在run。查看xxljob
![文章图片](https://img-blog.csdnimg.cn/1bd745359de74561bb9fce8e0e037e46.png)