在特定的时间间隔内获取Ruby的Rack App的数据

时间:2011-03-01 18:47:24

标签: ruby web-services cron rack fetch

我有一个非常简单的ruby rack应用程序,它从Web服务中检索信息并将其转换为JSON。

#config.ru

my_result = fetch_information_from_webservice
map '/feed' do
   run Proc.new {|env| [200, headers... , my_result.to_json]}
end

因此,在启动服务器时,它会获取信息,对其进行缓存并显示带有/feed的结果。 我想做的是不时重新加载fetch_information_from_webservice重新分配my_result一个全新的价值

所以,假设服务器每隔30分钟再次获取外部信息,将其缓存到/feed并非常谨慎地显示,而不会打扰用户。

有没有办法没有必须创建一个外部脚本并将其作为一个cron作业加载(比如在自己的configu.ru文件中声明?

提前致谢

1 个答案:

答案 0 :(得分:0)

Rufus Scheduler似乎正是我想要的,它非常整洁并且运行顺畅。

我必须要做的一件事是通过Sinatra而不是纯机架运行应用程序,因为原始的Rack应用程序没有在/ feed调用上相应地刷新结果,但是Sinatra工作得非常好。