Ruby的等价ASP.NET的Application_Start?
问题描述:
我想启动一个线程,每隔几秒醒来就在Ruby-on-Rails Web应用程序中进行一些处理。在.NET中,逻辑的地方应该是在global.asax文件中创建一个线程并在Application_Start
中启动它。Ruby的等价ASP.NET的Application_Start?
在RoR中做这样的事情有没有类似的范例?这会在ApplicationController
中完成吗?
另外:我输入了错误的搜索字符串还是搜索引擎真的很难找到用于构建RoR应用程序的信息?
答
Rails没有真正的等价物。该Whenever RubyGem是克龙的一个很好的抽象,让您使用的语法像下面的例子中从Rails应用程序里:
every 30.seconds do
# Do something interesting...
end
有些资源可能对您有用:
答
搜索引擎不仅是坏的,但几乎只有你会找到RoR的信息。 :(
我认为你所寻找的范例是一个cron工作,尽管这假定你在Linux下运行,但我最常见的是本质上是一个“计划任务”,每隔一页您可以通过将您的计划任务指向远程框的cron“命中点”来远程执行此操作。
您可以可以将代码放在ApplicationController中并让它检查以查看最近X年的工作是否已完成,但问题在于,您可能因为要求比预期的时间间隔更长而不能工作。
好 运气!
答
这个问题没有一个答案,因为它很大程度上取决于您的具体要求。但是,当然,这与ASP.NET中描述的概念没有直接的关系。但是,您需要查看Background Processing on Rails作为一个很好的起点。
我曾考虑过使用cron作业,但如果可能的话,我想保留webapp中的所有内容。 – jerhinesmith 2009-06-16 14:00:26