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<String> runtimePointMridList = new ArrayList<String>();

    @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<runtimePointMridList.size();i++)
            {
                。。。。。。。。。。。省略

                String messageStr = obj.toJSONString();
                System.out.println("runtimeData go: "+messageStr);
                webSocketServer.sendInfo("runtimeData", messageStr);
            }
            
        }

    }
}

 

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

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

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

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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值