为什么长时间的Rake任务会停止,然后重新开始?

时间:2009-09-24 16:48:27

标签: windows ruby ms-access

我有一个复杂的遗留数据迁移问题。 MS Access数据进入MySQL。我正在使用Rake任务。有很多数据,需要大量的转换和检查。 Rake任务是大约12个文件中的数百行。整个过程大约需要两个小时。它必须在Windows上运行(我使用托管在OS X Leopard系统上的XP VMware VM),因为可以与MS Access通信的Ruby库只能在Windows上运行。

我发现有时候,不是每次,我都会开始执行任务,稍后再回来,它会停滞不前。没有错误消息。我在其中放了很多印刷语句,所以你应该看到很多报道,但是它只是坐在那里做的最后一件事。 “11%完成”或其他什么。

我点击Ctrl-C而不是回到命令提示符,任务再次从它停止的地方开始,报告输出再次开始。

我很抱歉这个抽象的问题,但我希望有人可能对正在发生的事情有所了解或概念。也许建议进行故障排除。

1 个答案:

答案 0 :(得分:2)

好吧,如果访问端似乎冻结,请考虑将数据推送到MySql中,看看是否可以解决这个问题。换句话说,数据最终必须经过,您可以将数据从go go移动到该系统中。有许多实用程序可以将数据移动到MySql中(或者只是将访问数据导出到CSV文件)。

因此,当您将数据转移到MySql中时,您不会在数据传输期间进行数据转换(因此,这不是劳动力,也不是编程时间成本......只是传输数据)。

在MySql中获得数据后,您的代码就会将数据从一个MySql数据库(或表)迁移(转换)到另一个。而且,您脱离了VM环境并在本机环境中运行。 (性能更快,可能更稳定)。

因此,我会投票将您的数据传输到MySql中,然后再转到单个平台。

涉及的系统越少,问题的可能性就越小。