在 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/