springboot scheduled不执行_SpringBoot知识体系——监控与邮件提醒

99eca34cac7e8869e00159c787228baa.png

简述

利用spring框架中的任务注解@Scheduled定时执行任务,监控某个服务,并把其状态通过邮件发送给管理员。

发邮件使用springboot的JavaMailSender类。这是一个很通用的工具接口,在springboot中只需要引入一个maven依赖,无需任何配置就可以从容地进行开发工作,简单快捷高效。

以监控Elasticsearch集群的健康状态为例:

添加maven依赖

确保先增加过springboot依赖之后,再增加以下依赖

851b18552e670e3a05c4456d6b32d16a.png

增加application.properties
需要替换为自己邮箱协议与密码,发送方必须要开启smtp。我这里使用的QQ邮箱,设置方法见QQ邮件开启smtp服务

671fa9190a76084d37ae8fe3a3b4f2c9.png

增加监控类

其中HEALTH_CHECK_API可替换为自己的服务监控接口

db3db279ffb90f4a5051433ab65a1001.png

f66640a67141ae56a061988bd2c4ffba.png

ba9a25d3eb341f73a95fdd8d15e7cc1a.png

这样就可以简单的监控服务是否健康了。

尾巴

其中@Scheduled注解的参数解释:

1.cron
语法@Scheduled(cron=“1 * * * * * *”)
表达式:[秒] [分] [小时] [日] [月] [周] [年]
其中年可以省略

2.zone
时区,接收一个java.util.TimeZone#ID。cron表达式会基于该时区解析。默认是一个空字符串,即取服务器所在地的时区

3.fixedDelay
上一次执行完毕时间点之后多长时间再执行。

4.fixedDelayString

与 3. fixedDelay 意思相同,只是使用字符串的形式。唯一不同的是支持占位符

@Scheduled(fixedDelayString = “${time.fixedDelay}”)

占位符的使用(配置文件中有配置:time.fixedDelay=5000)

5.fixedRate
上一次开始执行时间点之后多长时间再执行。

6.fixedRateString
与 5. fixedRate 意思相同,只是使用字符串的形式。唯一不同的是支持占位符。

7.initialDelay
第一次延迟多长时间后再执行。
@Scheduled(initialDel个很通用的工具接口,在springboot中只需要引入一个maven依赖,无需任何配置就可以从容地进行开发工作,简单快捷高效。

以监控Elasticsearch集群的健康状态为例:

添加maven依赖

确保先增加过springboot依赖之后,再增加以下依赖

851b18552e670e3a05c4456d6b32d16a.png

增加application.properties
需要替换为自己邮箱协议与密码,发送方必须要开启smtp。我这里使用的QQ邮箱,设置方法见QQ邮件开启smtp服务

671fa9190a76084d37ae8fe3a3b4f2c9.png

增加监控类

其中HEALTH_CHECK_API可替换为自己的服务监控接口

db3db279ffb90f4a5051433ab65a1001.png

f66640a67141ae56a061988bd2c4ffba.png

ba9a25d3eb341f73a95fdd8d15e7cc1a.png

这样就可以简单的监控服务是否健康了。

尾巴

其中@Scheduled注解的参数解释:

1.cron
语法@Scheduled(cron=“1 * * * * * *”)
表达式:[秒] [分] [小时] [日] [月] [周] [年]
其中年可以省略

2.zone
时区,接收一个java.util.TimeZone#ID。cron表达式会基于该时区解析。默认是一个空字符串,即取服务器所在地的时区

3.fixedDelay
上一次执行完毕时间点之后多长时间再执行。

4.fixedDelayString

与 3. fixedDelay 意思相同,只是使用字符串的形式。唯一不同的是支持占位符

@Scheduled(fixedDelayString = “${time.fixedDelay}”)

占位符的使用(配置文件中有配置:time.fixedDelay=5000)

5.fixedRate
上一次开始执行时间点之后多长时间再执行。

6.fixedRateString
与 5. fixedRate 意思相同,只是使用字符串的形式。唯一不同的是支持占位符。

7.initialDelay
第一次延迟多长时间后再执行。
@Scheduled(initialDelay=1000, fixedRate=5000)

8.initialDelayString
与 7. initialDelay 意思相同,只是使用字符串的形式。唯一不同的是支持占位符。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值