gpt4 book ai didi

java - Spring quartz 间隔: what happen if method takes longer then repeat interval?

转载 作者:行者123 更新时间:2023-11-29 04:39:21 25 4
gpt4 key购买 nike

恕我直言,quartz 对这个问题中的 repeatInterval 不是很清楚:

如果该方法花费的时间比 repeatInterval 长,会发生什么情况,即使当前方法没有完成,它是否会触发触发器?如果该方法创建数据源对象,是否会导致连接池问题?

假设该方法通常需要 5 秒才能完成,但可能会激增到 10 秒,并且 repeatInterval 设置为 8000 (8 秒)

下一次触发会发生什么?我做了一些示例测试,看起来它会在 16th 秒内发生,因为第一次尝试 8000 ms 失败了

是这样的吗?对服务器性能有影响吗?

最佳答案

如果方法执行时间超过指定的时间间隔,则作业的第二个实例将被创建并同时运行。

您可以使用 @DisallowConcurrentExecution 注释您的 Job 实例防止作业的多个实例同时运行的注释。

@DisallowConcurrentExecution
public class TestJob implements Job {}

有了这个,进一步尝试的作业实例将排队,你必须当心,因为如果没有任何控制,无限数量的作业实例可能会排队,这可能会导致问题(例如性能,竞争条件等) ).

Is there any performance impact on the server?

由于 2 个作业正在执行相同的操作,这会对性能产生影响,当然这取决于您尝试执行的操作。

您可以找到调度的替代方案,以及防止并发执行的不同方法 here .

关于java - Spring quartz 间隔: what happen if method takes longer then repeat interval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39919495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com