我正在寻找一些教程/资源/提示,它们将向我展示如何通过 ruby 脚本运行应用程序。我有几个在日常操作中使用的小工具,我想在一个 ruby 脚本中管理它们的任务。
基本上我想做的是:
- 通过 ruby 脚本运行应用程序。
- (等待结果)获取结果代码(成功或错误消息)
- 如果没问题,启动应用程序执行下一个任务。
此外,每个任务都是独立的,因此我想利用 MacPro 上的 8 个内核并一次运行 8 个实例。
最佳答案
第一:使用 MacRuby。最新的 MacRuby 内置了 Grand Central 调度——这就是自动管理多核线程等的 Snow Leopard spiffiness。您可能不需要所有这些,但如果您知道它只会在 Mac 上运行,为什么不呢?
第二:获取 1.9 版的 Pickaxe 书(即 Programming Ruby 1.9)并阅读有关线程、纤程和进程的整个章节。
第三:根据自己的需要调整你学到的东西,但我可能会通过为每个任务分离一个新的 Thread
然后运行一个 system
来解决这个问题或在其自己的线程中为每个实用程序调用“反引号”。 Ruby 1.9 有真正的线程(而 MacRuby 有更好的线程),所以这些真的会同时运行——如果你主要在等待外部进程,解释器锁定根本不重要。
(如果你不需要关注调用的结果并且不需要循环,Pickaxe 的例子 exec('foo') if fork.nil?
会甚至更简单。我已经多次使用它来进行一次备份多个目录等操作。)
Colin 关于 EventMachine 的建议也行得通,如果你正确实现它(如果你的工作流程对事件异步 I/O 有意义),它会尽可能快,但会远 更复杂和繁琐。由于您并不想扩展到整个宇宙,您只是想完成一些本地实用程序任务,我认为线程会很好地满足您的需求,并且会使代码更简单、更具可读性和可维护性。
关于ruby - 通过 ruby 和多核支持运行应用程序? (苹果系统),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2481469/