JAVA中使用@Scheduled注解实现简单定时发送消息的功能

首先创建一个发送消息TimedSendMsgList类

package com.siheal.maintenance.timedstart;

import com.siheal.maintenance.controller.DeviceController;
import com.siheal.maintenance.domain.po.TAppErrorMessage;
import com.siheal.maintenance.service.DeviceService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

@Component
public class TimedSendMsgList {

    private static final Logger log = LoggerFactory.getLogger(DeviceController.class);

    @Autowired
    DeviceService deviceService;

    /**
     * 定时整点设备异常整消息列表查询
     * @param
     * @return
     */
    @Scheduled(cron = "0 0 0/1 * * ?")
    public void sendMsgList(){
        SimpleDateFormat fo = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        log.info("定时发送设备异常消息"+ fo.format(new Date()));
        int status = 0;
        List<TAppErrorMessage> list = deviceService.getAppErrorMessageList(status);
    }
}

注意几点
1、@Scheduled(cron = “0 0 0/1 * * ?”)参数是core这里设置的是项目启动后每隔整点发送一次消息,当然根据具体的需求进行参数的更改;
2、@Component需要在类名前加上这个注解;
3、根据实际的业务需要使用自己创建的业务层方法;
4、需要在项目启动类做如下更改;
在这里插入图片描述
5、结果显示在控制台有体现,如下我是实现每五秒定时发送一次,如下:@Scheduled(cron = “*/5 * * * * ?”)
在这里插入图片描述


版权声明:本文为yh5416原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。