java - 如何保存一个非常复杂和庞大的数据处理状态?

标签 java failover recovery

考虑 A* 算法的实现。- 例如: A* implementation 假设输入图非常大并且解决这段代码的时间足够长,以至于我想到了在这段代码崩溃的情况下进行故障恢复。故障可能是任何 - 软件/硬件等。 我不是在寻找代码,而只是一些指向此类恢复问题的常见解决方案的指针

最佳答案

有几个选项:

  1. 您可以重写算法以支持错误恢复。 例如,您可以将其拆分为任务并将这些任务提交到队列中。 所以算法的主要部分只是从队列中获取任务并执行它们。 在执行过程中,任务可能会提交额外的任务。 因此,要恢复,您只需要重复执行失败的任务即可。
  2. 执行字节码操作。 看看Javaflow方法。 您可以在某个时间点暂停您的代码执行 然后你可以恢复它。 如果出现问题,您只需尝试从上一点开始重新开始。

请注意,在某些情况下算法实现会出现问题, 所以恢复是不可能的。 但是当外部元件出现问题时 (例如,你在数据库中存储了一些东西) 重复可能会有帮助。 例如,数据库可能已关闭或与另一个事务存在写入冲突。

关于java - 如何保存一个非常复杂和庞大的数据处理状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21015223/

相关文章:

java - LDAP 访问 - javax.naming.CommunicationException : simple bind failed

PHP 复制数据库 session 故障转移

sql-server - 不同步时重新启动日志传送

ios - 我删除了包含 UIView Controller 类 * 的类文件。和 *.h 文件

java - 有没有办法检索java源文件?

java - JComboBox,如果所选项目发生更改或选择相同的项目,则触发操作

java - 如何保持 JButtons 的透明度 (java)

java - 如何在 Android (java) 和 OpenGL ES 2.0 上旋转

mysql - tomcat jdbc 故障转移主机

android - 在 Recovery Android 中重启