【发布时间】:2013-12-06 21:35:29
【问题描述】:
我正在编写一个在 AWS 中自动创建大量资源的脚本(除了一些其他任务之外),但是开发和测试非常耗时,因为我只能一直走到最后让脚本失败,然后我必须更正错误并再次运行脚本。
是否有任何 shell 脚本工具(unix 或 ruby 甚至 Windows),如果发生故障,我可以在其中启动脚本?也许有一些方法可以让rake 运行一个没有所有依赖任务的任务?
更新:
为了澄清,我不是在寻找任何在调用之间保持状态的复杂的东西;我说的是编写一个简单的 shell 脚本,其中可能包含几十个连续的步骤,每个步骤都需要很长时间。换句话说,如果脚本在第 10 步崩溃了,我想在第 10 步再次启动脚本,而不必重新运行之前的所有步骤。
【问题讨论】:
-
Ruby 不支持这一点,我知道的任何其他语言也不支持。有一个基于核心转储的 Perl“可执行文件”,但它总是从应用程序的开头开始,而不是在所有解释器状态完好无损的任意位置。编写不断监视和保存正在运行的程序的可变状态的代码将是高度侵入性的。虽然这是可能的,但该程序在生产环境中会非常缓慢且无法使用,至少在当前计算机的速度下是这样。此外,如果程序崩溃了,您将如何解决问题并重新启动?
-
真的归结为您需要构建您的应用程序以允许在没有运行任何先前例程的情况下跳转到特定例程。