Java 在指定时间内杀死长时间运行的线程
我们正在尝试在数据库中导入一个对象(例如Java 在指定时间内杀死长时间运行的线程,java,multithreading,jdbc,transactions,spring-transactions,Java,Multithreading,Jdbc,Transactions,Spring Transactions,我们正在尝试在数据库中导入一个对象(例如objectA),该对象将首先导入自身,然后再导入其子对象(例如objectAA,objectAB,objectAC等)。我们使用DefaultTransactionDefinition启动本地事务,执行方法导入对象,然后提交/回滚事务。方法导入对象将执行以下操作 从数据库中检索存储过程 执行查询以导入对象的内容 存储和处理查询返回的响应 对子对象执行上述所有操作 我想中断这个方法,以防时间太长。我尝试了以下技巧 使用线程导入对象。但是在方法中没有特定的位
objectA
),该对象将首先导入自身,然后再导入其子对象(例如objectAA
,objectAB
,objectAC
等)。我们使用DefaultTransactionDefinition启动本地事务,执行方法导入对象,然后提交/回滚事务。方法导入对象将执行以下操作
interrupt()
不能用于停止线程cancel()
不能用于停止查询并导致方法返回setTimeout()
method,以在指定的时间后终止事务,从而导致该方法返回。但它不能在两者之间终止该方法是否有任何方法可以在方法执行时终止该方法,然后相应地提交/回滚事务?只是澄清一下,您使用的是Spring的defaultTransactionDefinition???是的,我使用的是Spring的defaultTransactionDefinition。