Dre*_*mer 3 java spring quartz-scheduler
恕我直言,这个问题quartz并不是很清楚:repeatInterval
如果该方法花费的时间比 长repeatInterval,会发生什么,即使当前方法没有完成,它是否也会触发触发器?如果该方法创建数据源对象,是否会导致连接池问题?
说明该方法通常需要5几秒钟才能完成,但可能会激增到10几秒钟,并且repeatInterval设置为8000(8 秒)
下次触发时会发生什么?我做了一些示例测试,看起来它会在16th第二次发生,因为第一次尝试8000ms 失败了
是这样的吗?对服务器性能有影响吗?
如果方法执行时间超过指定的时间间隔,则将创建作业的第二个实例并同时运行。
您可以使用@DisallowConcurrentExecutionJob注释来注释您的实例,以防止作业的多个实例同时运行。
@DisallowConcurrentExecution
public class TestJob implements Job {}
Run Code Online (Sandbox Code Playgroud)
这样,进一步尝试的作业实例将排队,您必须小心,因为如果没有任何控制,无限数量的作业实例可能会排队,这可能会导致问题(例如性能、竞争条件等)。
对服务器性能有影响吗?
由于 2 个作业正在执行相同的操作,这会对性能产生影响,当然具体取决于您尝试执行的操作。
您可以在此处找到调度的替代方案以及防止并发执行的不同方法。
| 归档时间: |
|
| 查看次数: |
1300 次 |
| 最近记录: |