首页 > 解决方案 > 暂停暂停的线程并在 JVM 重新启动后恢复它

问题描述

嗨,我正在寻找一种方法来存储暂停的线程并在 JVM 重新启动后恢复它。

任何线索都将非常明显。

重启后线程名、线程组不必相同。如果我们在 JVM 重新启动之前将其恢复,则要考虑的事物已恢复应遵循相同的步骤。所有变量都应存储在哪个线程处理或访问它。

标签: java

解决方案


没有办法做到这一点。忘记任何持久线程的想法。这是任何已知的生产质量 JVM 都无法实现的。

您最好将要完成的任务队列简单地存储在事务数据库(或消息队列系统)中,然后编写可重新启动的任务代码。如果单个任务花费的时间足够长以至于无法接受重新启动任务......将任务拆分为较小的任务,或实施任务检查点。

(您真正想要的是一个实现正交持久性并且能够持久化线程并且能够通过活动查询持久化数据库连接的 JVM。据我所知,这些东西在任何 JVM 实现中都不可用,更不用说他们全部。)


推荐阅读