Java 如何使用Quartz实现超时?

Java 如何使用Quartz实现超时?,java,jakarta-ee,quartz-scheduler,Java,Jakarta Ee,Quartz Scheduler,我试图找到用quartz实现超时的最佳方法,但我想知道这个框架是否已经包含了一个类或接口来实现超时。需要实现它的超时是因为我想知道作业已经工作了多长时间,并做出关闭作业的决定。由于java平台不提供任何停止线程的方法,Quartz不提供任何停止线程上执行的作业的方法 作业需要自己照顾自己,因为Quartz可能不知道其execute()方法中的代码是什么 我建议在作业execute()方法的开头使用System.currentTimeMillis()来记录当前时间,然后每次通过作业的主循环再次使用

我试图找到用quartz实现超时的最佳方法,但我想知道这个框架是否已经包含了一个类或接口来实现超时。需要实现它的超时是因为我想知道作业已经工作了多长时间,并做出关闭作业的决定。

由于java平台不提供任何停止线程的方法,Quartz不提供任何停止线程上执行的作业的方法

作业需要自己照顾自己,因为Quartz可能不知道其execute()方法中的代码是什么


我建议在作业execute()方法的开头使用System.currentTimeMillis()来记录当前时间,然后每次通过作业的主循环再次使用它来获取当前时间。查看差异,看看是否已经过了最长时间,如果已经过了,请跳出主循环并退出execute()方法。

尝试endTime参数了吗?您好,谢谢您的提问,我真的没有使用这个参数,因为我认为它只是用于在某个时间结束工作。我想知道,为了避免无限循环,作业要做多长时间,所以您正在寻找一种方法来跟踪调度程序的正常运行时间,而不是超时时间。尝试查看侦听器的文档。我没有使用它们,但它们似乎是监视应用程序运行状态/时间的合乎逻辑的选择。还有JobListener界面,它为您提供了一些工具,可以向框架中添加一些简单的功能,以满足您的需求。但是,如果这项工作是一次性的,没有循环,我如何检查您是否说过?