WebSphere 9中能否跳过错过的@Schedule事件而非补执行?
WebSphere 9 持久化调度服务取消重试配置方案
可以实现该需求,WebSphere提供了专门的配置项来控制持久化计时器的重试行为,具体操作如下:
控制台配置调整重试策略
- 登录WebSphere管理控制台,定位到目标应用:
- 依次点击 应用程序 > 企业应用程序 > [你的应用名称] > 计时器服务
- 在「持久化计时器设置」区域,找到最大重试次数,将其值设置为
0 - 保存配置并重启应用或服务器,使设置生效
当最大重试次数设为0后,无论任务执行超时还是触发失败,WebSphere都不会发起重试,只会按照你定义的@Schedule规则等待下一次触发时间。
补充说明
- 你现有的代码无需修改,
persistent=true仅控制集群单点触发的特性,不影响重试规则的调整 - 若任务执行中抛出异常,只要重试次数设为0,容器不会重复执行当前周期的任务,直接进入下一个调度周期
你的示例代码:
@Schedule(minute="30", hour="6-20", dayOfWeek="Mon-Fri", dayOfMonth="*", month="*", year="*", info="TimerName", persistent=true) public void scheduledTimeout(final Timer t) { // do something }
内容的提问来源于stack exchange,提问作者simonalexander2005
相关产品推荐
相关产品推荐

