Spring-boot系列(12):Scheduled定时器的使用

项目中常常会用到定时器,用来执行耗时操作。

springboot整合

使用起来很简单
1.主函数上增加开启定时器的注解

@EnableScheduling

2.新建一个定时任务类Task

@Component
public class Task {
    // @Scheduled(cron = "*/5 * * ? * *")

    /**
     * fixedRate上一个调用开始后再次调用的延时(不用等待上一次调用完成)
     */
    // @Scheduled(fixedRate = 1 * 1000)

    /**
     * 等到方法执行完成后延迟配置的时间再次执行该方法
     */
    @Scheduled(fixedDelay = 1 * 1000)
    public void Task() {


        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(System.currentTimeMillis());
    }
}

使用@Component注解声明好,方法上直接@Scheduled(cron = “/5 * ? * *”),写好cron表达式即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 spring boot 定时器库存预警的代码示例: 首先,在 pom.xml 中添加依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 然后,在 application.properties 中配置邮件发送相关的属性: ``` spring.mail.host=smtp.example.com spring.mail.port=587 spring.mail.username=yourusername spring.mail.password=yourpassword spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true ``` 接下来,创建一个定时器类 InventoryWarningTask,并添加 @Component 注解,表示这是一个组件类: ```java @Component public class InventoryWarningTask { @Autowired private ProductService productService; @Autowired private JavaMailSender javaMailSender; @Scheduled(cron = "${inventory.warning.cron}") public void execute() { List<Product> products = productService.getProducts(); for (Product product : products) { if (product.getInventory() < product.getWarningInventory()) { String subject = "库存预警:" + product.getName(); String text = "商品名称:" + product.getName() + "\n" + "当前库存:" + product.getInventory() + "\n" + "警戒库存:" + product.getWarningInventory(); sendEmail(subject, text); } } } private void sendEmail(String subject, String text) { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom("sender@example.com"); message.setTo("recipient@example.com"); message.setSubject(subject); message.setText(text); javaMailSender.send(message); } } ``` 在定时器类中,我们使用 @Autowired 注解将 ProductService 和 JavaMailSender 注入进来。在 execute() 方法中,我们获取所有商品,检查库存是否低于警戒库存。如果是,则发送邮件给管理员。 定时器的执行时间通过 @Scheduled 注解的 cron 属性指定,这里使用了 ${inventory.warning.cron} 属性占位符,需要在 application.properties 中定义该属性的值,例如: ``` inventory.warning.cron=0 0 12 * * ? ``` 表示每天中午 12 点执行一次。 以上就是一个简单的 spring boot 定时器库存预警的代码示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值