博客
关于我
spring定时任务schedule未执行或超时的几点验证
阅读量:314 次
发布时间:2019-03-03

本文共 798 字,大约阅读时间需要 2 分钟。

近来由于项目的需要,开发了几个定时任务。由于项目已经集成了Spring,并提供了注解的支持,因此选择了Schedule的方式进行配置和使用。网上关于Schedule的配置和使用说明都很多,因此上手相对方便。接下来,谈一下几点感受。

1. 配置方便

现在大多数项目都会使用Spring框架,使用Schedule会非常方便。只需在现有的Spring基础上加入Task的支持即可。通过扫描基础包,可以轻松将相关配置包含进去。此外,支持cron表达式,这也大大提升了使用的便利性。

2. 关于超时时间

Schedule默认是没有超时时间的。在实际使用中,曾经做过一个验证,发现一个任务即使执行4-5个小时也不会超时。因此,在开发定时任务时,需要特别注意任务的执行时间。最初开发时,考虑到任务执行时间较长,专门查找是否有超时设置的相关资料,但相关资料并不多。

3. 关于执行顺序

Schedule的任务是按顺序执行的,执行顺序与配置的时间先后顺序一致。每个任务在上一个任务执行完毕后才会开始执行。结合前面所说的任务没有超时时间(或者超时时间很长),在配置时需要合理安排任务的先后顺序以及执行时间间隔。

4. 任务未执行

在配置合理的情况下,任务完全不会未执行。但如果任务在指定时间点未执行,可能是由于上一个任务在本任务设置的执行时间点尚未完成导致的延后执行。这种情况在测试时尤为常见,因为大多数任务设置在凌晨运行,导致测试不便。解决方法一般有两种:一种是修改服务器时间,另一种是调整任务的执行时间(不建议,因为这需要修改代码,稍有疏忽可能导致上线时的代码变更)。如果应用已启动,修改服务器时间无效,需要重启服务以使时间生效。

5. 支持相对对配置少

Schedule的配置相对简单,但也带来了一些缺点。因为配置较少,所以对一些个性化需求支持也较少。对于一些特殊需求,通常需要编码实现,而没有通用的配置支持。

转载地址:http://hdtm.baihongyu.com/

你可能感兴趣的文章
ntpdate同步配置文件调整详解
查看>>
NTPD使用/etc/ntp.conf配置时钟同步详解
查看>>
NTP及Chrony时间同步服务设置
查看>>
NTP服务器
查看>>
NTP配置
查看>>
NUC1077 Humble Numbers【数学计算+打表】
查看>>
NuGet Gallery 开源项目快速入门指南
查看>>
NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
查看>>
nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
查看>>
Nuget~管理自己的包包
查看>>
NuGet学习笔记001---了解使用NuGet给net快速获取引用
查看>>
nullnullHuge Pages
查看>>
NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
查看>>
null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
查看>>
Numix Core 开源项目教程
查看>>
numpy
查看>>
NumPy 库详细介绍-ChatGPT4o作答
查看>>
NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
查看>>
numpy 或 scipy 有哪些可能的计算可以返回 NaN?
查看>>
numpy 数组 dtype 在 Windows 10 64 位机器中默认为 int32
查看>>