java - 如何使用 Quartz 实现超时?

标签 java jakarta-ee quartz-scheduler

我正在尝试找到使用 quartz 实现超时的最佳方法,但我想知道这个框架是否已经包含一个类或接口(interface)来执行它。需要执行的超时是因为我想知道工作已经工作了多长时间,并采取关闭工作的决定。

最佳答案

因为 java 平台没有提供任何方法来停止线程,Quartz 也没有提供任何方法来停止在线程上执行的作业。

作业需要照顾好自己,因为 Quartz 不知道它们的 execute() 方法中有什么代码。

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

关于java - 如何使用 Quartz 实现超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3557557/

相关文章:

java - 使用从 jar 导入的类编译 java 时出错

java - Maxima 中的基本类型 boolean 值

jakarta-ee - 在 JAX-RS 请求过滤器之间共享数据的最佳方式

jdbc - Seam 异步方法中的事务/数据库问题

java - Pom.xml 在编译 maven-processor-plugin 时返回错误

java - Kotlin调用提供的Unit类型的参数

jakarta-ee - 部署 Java Web 应用程序时出现问题

java - 如何以固定的时间间隔运行后台作业方法?

java - 无法在 Apache isis quartz 中注入(inject)服务

grails - 如何在Grails中动态更改Quartz CRON表达式