corn定期时间表达式
Spring Task 定时任务
3.1 需求分析
根据分布式事务的研究结果,订单服务需要定时扫描任务表向MQ发送任务。本节研究定时任务处理的方案,并实
现定时任务扫描任务表并向MQ发送消息。
实现定时任务的方案如下:
1 、使用jdk的Timer和TimerTask实现
可以实现简单的间隔执行任务,无法实现按日历去调度执行任务。
2、使用Quartz实现
Quartz 是一个异步任务调度框架,功能丰富,可以实现按日历调度。
3、使用Spring Task实现
Spring 3.0后提供Spring Task实现任务调度,支持按日历调度,相比Quartz功能稍简单,但是在开发基本够用,支
持注解编程方式。
本项目使用Spring Task实现任务调度。
3.2 Spring Task 串行任务(案例)
3.2.1 编写任务类
在Spring boot启动类上添加注解:@EnableScheduling
新建任务测试类TestTask,编写测试方法如下:
import com.xuecheng.framework.domain.task.XcTask;
import com.xuecheng.order.config.RabbitMQConfig;
import com.xuecheng.order.service.TaskService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
/**
* @author Administrator
* @version 1.0
**/
@Component
public class ChooseCourseT