java - 停止调用 Oracle 过程的 Java 线程

标签 java oracle spring multithreading

在 Spring/Hibernate Web 应用程序中,我使用的是使用 Java 线程构建的工作队列。 线程的 run() 方法调用 Oracle 过程,该过程可能会持续几分钟/几小时。所有工作队列的线程都存储在一个列表中。

我想构建一个界面(JSP),我可以在其中显示正在运行的作业的列表,并允许用户“杀死”作业。

我无法使用 Thread.stop() 方法,该方法已被弃用。我也已经尝试了 interrupt() 的不同方法,但在 Oracle 调用期间我没有成功停止线程。

  • 您认为可以在 Oracle 调用期间停止线程吗?
  • 否则,我应该寻找另一种方法来执行此工作队列(没有线程)吗?

非常感谢!

最佳答案

"should i look for another way to do this work queue (without threads) "

在我看来,您正在重新发明 Oracle 已经提供的数据库作业功能。

DBMS_SCHEDULER这是在 Oracle 10g 中引入的,相当复杂。在早期版本中只有 DBMS_JOB ,这仍然相当不错:与当前的实现相比,它在后台运行存储过程方面会做得更好(ho ho)。

关于java - 停止调用 Oracle 过程的 Java 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3404516/

相关文章:

java - 使用 hibernate 6.0.10 验证结果来自 EachPattern 的 ConstraintDefinitionException

java - LIBGDX Animate without enternig render()

java - 仅适用于 Flying Saucer 的 CSS 选择器

java - 使用正则表达式 Java 行之间的子字符串

node.js - 将数组值批量插入数据库 Node.js、Oracle、orawrap

oracle - 向 oracle 中的现有表添加一个具有默认值的列

java - Hibernate 从外部事务类中的 getCurrentPrice 返回 null

java - 需要 session 的实体不可能为 azure IMessageReceiver 创建非 session 消息接收器

oracle - 我想将变量参数传递给外部 SQL 文件(PL/SQL with SQL*Plus)

java - 为什么我的常规应用程序上下文无法加载我的属性文件?