【问题标题】:Detect Mac OS going to sleep from java to prevent sqlite database corruption检测 Mac OS 从 java 进入睡眠状态以防止 sqlite 数据库损坏
【发布时间】:2017-11-07 10:45:29
【问题描述】:

我正在编写一个处理大型数据集的 Java 应用程序 - 将其转换为大小约为 100 - 150Gb 的 sqlite3 数据库。这需要一段时间,所以我需要我的笔记本电脑(Macbook Air)运行几天。

作为一名学生,我还需要在外面使用我的笔记本电脑,所以我不能保证我总是可以使用电源。在 OSX 运行大约四分之一时,它进入睡眠状态,然后在试图唤醒时崩溃,破坏了宝贵的 30Gb 数据。

我想做的是检测操作系统将从 java 进入睡眠状态,然后安全地终止程序。这是可能的还是有更好的解决方案(除了显而易见的 - 不要在电池供电时运行应用程序)?我在网上找到的唯一信息是使用带有 I/O 套件的目标 c。

【问题讨论】:

  • 为什么不关闭 Macbook 的自动睡眠功能?
  • 使用合适大小的事务即可。
  • @saifahmad 因为我不能保证有足够的电池来在两次充电之间继续执行 - 如果需要,我需要能够睡眠,然后在我重新连接电源时恢复
  • @CL。如果它在交易过程中休眠怎么办?
  • 如果一个事务花费太多时间,它的大小不合适。 ☺ 无论如何,交易量应该足够小,以免你损失太多。

标签: java macos sqlite


【解决方案1】:

如果您的数据库规模如此之大,最好使用 Hadoop、Apache Spark 或 MySQL 服务器等 BigData,至少因为 SQLite 在您插入大量数据时通常会崩溃。

另一个解决方案是让您的应用程序插入或您对数据库所做的任何事情都从最后一个停止点继续。在这种情况下,您可以随时停止或恢复,而不必担心您的计算机是否会休眠。

【讨论】:

    猜你喜欢
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2011-09-08
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 2021-01-17
    相关资源
    最近更新 更多