当我编写里一个每秒执行一次的定时器,然后在运行junit测试的时候,发现我的定时器也在跑。想要在测试时关闭定时器,而正常启动时不用关闭。也不通过注解 @EnableScheduling 来实现。求大神帮助。
定时器 是这样的。
@Scheduled(cron="0/1 * * * * ? ")
public void generationDayData(){
ExecutorService executor = this.getExecutor();
String [] ss=new String[]{"1","2","3","4"};
for (String s:ss ) {
executor.submit(()->{
DayDate da=new DayDate(s,new Date(),new BigDecimal(Math.random()*(100)+0).setScale(2,BigDecimal.ROUND_DOWN),
"1","");
boolean t=ds.insert(da);
if(t){
log.info("insert"+s+" :data"+da.toString());
}
});
}
}
测试类
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class Test3 {
目前试了 双启动类,第二个启动类不添加@EnableScheduling
@ComponentScan(excludeFilters = {
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = TestScheduled.class),
})
加在测试类
都不生效