考虑 A* 算法的实现。- 例如: A* implementation 假设输入图非常大并且解决这段代码的时间足够长,以至于我想到了在这段代码崩溃的情况下进行故障恢复。故障可能是任何 - 软件/硬件等。 我不是在寻找代码,而只是一些指向此类恢复问题的常见解决方案的指针
最佳答案
有几个选项:
- 您可以重写算法以支持错误恢复。 例如,您可以将其拆分为任务并将这些任务提交到队列中。 所以算法的主要部分只是从队列中获取任务并执行它们。 在执行过程中,任务可能会提交额外的任务。 因此,要恢复,您只需要重复执行失败的任务即可。
- 执行字节码操作。 看看Javaflow方法。 您可以在某个时间点暂停您的代码执行 然后你可以恢复它。 如果出现问题,您只需尝试从上一点开始重新开始。
请注意,在某些情况下算法实现会出现问题, 所以恢复是不可能的。 但是当外部元件出现问题时 (例如,你在数据库中存储了一些东西) 重复可能会有帮助。 例如,数据库可能已关闭或与另一个事务存在写入冲突。
关于java - 如何保存一个非常复杂和庞大的数据处理状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21015223/