如果将所有任务放在
ScheduledExecutorService
上,但是如果服务器关闭或服务器获取更新并重新启动,我分配给线程的任务将丢失,有什么解决方案吗
如何保存我已经放入的数据
ScheduledExecutorService
。
Java 提供的
ScheduledExecutorService
的实现仅在内存中记住其提交的任务。当 JVM 退出时,所有已提交和未完成的任务都消失了,噗💨。
如果您需要跟踪任何未完成或等待执行的剩余任务,请使用其他工具,或自行管理跟踪。
当您提交任务时,您可以将其标识符记录在数据库中。作为任务工作的一部分,它将删除或修改数据库中的记录。
启动时,您的应用程序将查询数据库以查找尚未完成的任务。然后重新创建这些任务对象,并提交给新的
ScheduledExecutorService
。