spring定时器介绍

    平时我们工作时会经常遇到有关定时器的业务需求,比如定时去更新商品的销量这些,那其实我们可以根据业务的实际需求去定制开发定时器,这里主要讲解和spring有关的定时器,下面直接上代码

    <!--maven需要引入的依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

springboot已经整合了有关定时器的依赖,直接引入即可操作,很方便

首先我们需要了解一下cron表达式,这里展示的cron表达式是每秒钟更新一次,这个具体怎么写需要根据业务的实际需求,当然没必要死记硬背,这里贴出一个网站,直接去那里动态生成即可 http://cron.qqe2.com/

1.我们需要一个Config对象,属于java配置方式,这里写的比较简单,放置于Application同级目录,如果放置其他地方,那需要设置一个@ComponentScan注解,表明我们需要在哪里扫描具体的Task任务

@Configuration
@EnableScheduling
public class TaskConfiguration {

}

2.定时任务具体的业务逻辑

@Component
public class UpdateSaleNumTask {

    private final Logger logger = LoggerFactory.getLogger(UpdateSaleNumTask.class);

    @Scheduled(cron = "* * * * * ?")
    public void updateSaleNum() {
        logger.info("============>开始执行更新销量");
        //这里定义一个时间,方便观察cron表达式对计划任务的作用
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        logger.info("执行销量更新:时间{}", format.format(new Date()));
        logger.info("============>销量更新完毕");
    }

}

结果:

c.m.schedule.task.UpdateSaleNumTask      : ============>开始执行更新销量
c.m.schedule.task.UpdateSaleNumTask      : 执行销量更新:时间2018-11-25 15:35:54
c.m.schedule.task.UpdateSaleNumTask      : ============>销量更新完毕
c.m.schedule.task.UpdateSaleNumTask      : ============>开始执行更新销量
c.m.schedule.task.UpdateSaleNumTask      : 执行销量更新:时间2018-11-25 15:35:55
c.m.schedule.task.UpdateSaleNumTask      : ============>销量更新完毕
c.m.schedule.task.UpdateSaleNumTask      : ============>开始执行更新销量
c.m.schedule.task.UpdateSaleNumTask      : 执行销量更新:时间2018-11-25 15:35:56
c.m.schedule.task.UpdateSaleNumTask      : ============>销量更新完毕

上面的基本上就是一个简单的案例,后面我们会跟进更为复杂的定时方案

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值