Ruby等效的ASP.NET Application_Start?

时间:2009-06-16 13:47:03

标签: ruby-on-rails

我想开启一个线程,每隔几秒钟唤醒一次,在Ruby-on-Rails网络应用程序中进行一些处理。在.NET中,逻辑位置应该是在global.asax文件中创建一个线程并在Application_Start中启动它。

在RoR中做这样的事情有类似的范例吗?这会在ApplicationController吗?

中完成

顺便说一句:我是否输入了错误的搜索字符串,或者搜索引擎是否真的很难找到构建RoR应用程序的信息?

4 个答案:

答案 0 :(得分:3)

Rails并没有真正的等价物。 Whenever RubyGem是Cron的一个很好的抽象,它允许你在Rails应用程序中使用如下例子的语法:

every 30.seconds do
  # Do something interesting...
end

您可能会发现一些有用的资源:

答案 1 :(得分:0)

搜索引擎不仅不好,而且几乎只有你能找到RoR信息的地方。 :(

我认为你正在寻找的范例是一个cron工作,虽然这假设你在Linux下运行。我经常看到的本质上是一个“计划任务”,每隔X y下拉一页,处理在该请求内完成。您甚至可以通过将计划任务指向远程控制台的cron“命中点”来远程执行此操作。

可以将代码放在ApplicationController中并让它检查作业是否在最后一个X y中完成,但问题是你可能因为超过预期的请求而缺乏资源间隔。

祝你好运!

答案 2 :(得分:0)

这个问题没有答案,因为它在很大程度上取决于您的具体要求。但是,当然,没有直接等同于您在ASP.NET中描述的概念。但是,您需要看一下Background Processing on Rails作为一个很好的起点。

答案 3 :(得分:0)

几年前我尝试daemon_generator但由于某种原因现在忘记了我从未结束使用它。