在Java上处理MySQL查询时处理掉电?

在Java上处理MySQL查询时处理掉电?,java,mysql,resume,Java,Mysql,Resume,我正在构建一个使用数据库的Java应用程序。我使用MySQL作为数据库,使用JDBC作为连接 我的应用程序将处理大量数据,因此需要花费很多时间,我担心当计算机因意外或其他原因失去电源时。是否有办法恢复该过程,使其不会从头开始处理?一般步骤: 购买并使用UPS(不间断电源),使您的系统运行至少15分钟 编写代码,以便通过信号中断长时间运行的事务 对UPS软件进行编程,以在断电时向您的程序发送信号,使其能够暂停当前工作单元并正常关机 仔细选择事务大小,以确保可以在可用的UPS时间内完成提交/回滚(感

我正在构建一个使用数据库的Java应用程序。我使用MySQL作为数据库,使用JDBC作为连接

我的应用程序将处理大量数据,因此需要花费很多时间,我担心当计算机因意外或其他原因失去电源时。是否有办法恢复该过程,使其不会从头开始处理?

一般步骤:

  • 购买并使用UPS(不间断电源),使您的系统运行至少15分钟
  • 编写代码,以便通过信号中断长时间运行的事务
  • 对UPS软件进行编程,以在断电时向您的程序发送信号,使其能够暂停当前工作单元并正常关机
  • 仔细选择事务大小,以确保可以在可用的UPS时间内完成提交/回滚(感谢@Fildor的支持)

  • 记住已处理的内容。。这可能是消息队列的一个很好的用途。正如pst所说的,记录处理的数据量。并优化查询以仅处理剩余数据,以防重新运行整个处理。不过,您也应该考虑一下备用电源!您更担心的是必须重新开始,还是担心数据库处于中间状态?MySQL数据恢复文档感谢所有回复@不幸的是,我不知道如何记住这个过程@MayurPipaliya是的,但是当查询是
    insert
    时,我只能获取日志。我能够知道插入了多少行,但是对于
    select
    我不知道如何插入,因此我必须重新运行
    select
    过程。仔细选择交易规模。谢谢@Fildor先生,这将是我最后的选择。关于我@Fildor,你说的“暂停当前工作”是什么意思?我能暂停查询处理吗?@Fahmi,来自Jim:)他的意思是,如果检测到断电,你必须停止将任务放入“待办事项”列表。这样,数据库就可以完成最后一个事务,然后以受控的方式进行下去。当然,你将不得不重做一些尚未完成的工作。但是,在任何设置中,如果数据库处于不一致的状态,并且不受控制的话,情况会更糟。。再次感谢吉姆。我会考虑你的好建议。