博客
关于我
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/

你可能感兴趣的文章
Node.js 异步模式浅析
查看>>
node.js 怎么新建一个站点端口
查看>>
Node.js 文件系统的各种用法和常见场景
查看>>
Node.js 的事件循环(Event Loop)详解
查看>>
node.js 简易聊天室
查看>>
Node.js 线程你理解的可能是错的
查看>>
Node.js 调用微信公众号 API 添加自定义菜单报错的解决方法
查看>>
node.js 配置首页打开页面
查看>>
node.js+react写的一个登录注册 demo测试
查看>>
Node.js中环境变量process.env详解
查看>>
Node.js之async_hooks
查看>>
Node.js升级工具n
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js基于Express框架搭建一个简单的注册登录Web功能
查看>>
Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
查看>>
Node.js安装及环境配置之Windows篇
查看>>
Node.js安装和入门 - 2行代码让你能够启动一个Server
查看>>
node.js安装方法
查看>>
Node.js官网无法正常访问时安装NodeJS的方法
查看>>
Node.js的循环与异步问题
查看>>