SpringBoot 定时器schedule 使用时的注意问题

今年开发的东西是C++的,但最近有个项目时间紧迫,临时又被拉去做java和web。记录一下使用springboot的定时器时的问题。

 

SpringBoot的定时任务非常简单,定时任务也不用整合quartz了,直接schedule就欧了。

1、引入POM依赖

Spring的Schedule包含在spring-boot-starter模块中,无需引入其他依赖。

2、开启注解支持

在启动类增加注解:@EnableScheduling

 

3、小例子

 

@Component
public class RuntimeDataSender {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Resource
    private WebSocketServer webSocketServer;

    @Autowired
    private RuntimeDataController dataController;

    List runtimePointMridList = new ArrayList();

    @Scheduled(fixedRate=10000)
    public void sendRuntimeDataByFixed() {

         runtimePointMridList = RuntimeDataController.runtimePointMridList;
        
        //System.out.println("timing tasks go: ");

        if(runtimePointMridList!=null && runtimePointMridList.size()>0)
        {
            for(int i=0;i 
  

 

最后,重要提示,使用时要注意:

1、该定时任务实现的方法,是不可以有参数的。

2、该定时任务类中,其他方法不能有其他的@注解的使用,否则定时任务不执行。

      我起初时,把这个定时的实现方法sendRuntimeDataByFixed()放在了controller类里面,因为该类中的其他很多方法使用时也添加了别的注解,导致,定时任务不生效。


 

你可能感兴趣的:(web技术,springboot)