首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby桌面应用程序中的后台作业

Ruby桌面应用程序中的后台作业
EN

Stack Overflow用户
提问于 2011-09-09 02:13:31
回答 2查看 345关注 0票数 1

我正在开发一个跨平台的GUI桌面应用程序,用Ruby编写。该应用程序将使用MacRuby在Mac上提供图形用户界面,并将在其他平台上使用Qt作为图形用户界面。该应用程序是一种多媒体工具,可以实现翻录CD或DVD并将其编码为各种格式,或将多媒体文件从一种格式转换为另一种格式。

这些任务非常耗时,因此必须在后台运行,以免在执行时冻结GUI。此外,后台作业应该能够被取消和/或暂停,并且能够向GUI报告状态和进度。还可能需要为作业分配优先级,以便较高优先级的作业在较低优先级的作业之前运行,并且还需要在作业之间具有依赖性,以便作业在其所有依赖性完成之前不会开始执行。

我的问题是:在Ruby GUI/桌面应用程序中,什么工具或技术最适合处理这类后台作业?我不希望“滚动我自己的”作业管理器来产生进程或线程,以及管理作业的启动和停止等。

编辑:在发布了这个问题后,我意识到不久前我在C++解决方案中也问过一个非常类似的问题。我对这个Ruby解决方案的需求与我在这里发布的C++解决方案的需求是一样的:C++ master/worker

EN

回答 2

Stack Overflow用户

发布于 2011-09-09 10:52:00

不幸的是,我遇到的大多数Ruby后台任务运行器都是为Rails设计的。

这可能比您期望的要低一点,但是EventMachine会出现在脑海中。如果您准备编写自己的高级Job/Dependency代码,则可以使用EM为其提供支持,并处理线程(或forking,如果您愿意)的繁琐工作。不确定是否要暂停...

我建议查看EventMachine::Deferrable和EventMachine::DeferrableChildProcess,看看它们是否可以工作。

票数 1
EN

Stack Overflow用户

发布于 2011-09-09 13:09:44

我最近使用resque在ruby项目中做后台工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7352600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档