我正在尝试找到使用 quartz 实现超时的最佳方法,但我想知道这个框架是否已经包含一个类或接口(interface)来执行它。需要执行的超时是因为我想知道工作已经工作了多长时间,并采取关闭工作的决定。
最佳答案
因为 java 平台没有提供任何方法来停止线程,Quartz 也没有提供任何方法来停止在线程上执行的作业。
作业需要照顾好自己,因为 Quartz 不知道它们的 execute() 方法中有什么代码。
我建议在作业的 execute() 方法开始时使用 System.currentTimeMillis() 来记录当前时间,然后每次通过作业的主循环再次使用它来获取当前时间。查看差异以查看您的最长时间是否已经过去,如果是,则跳出主循环并退出 execute() 方法。
关于java - 如何使用 Quartz 实现超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3557557/