我有一个非常简单的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
文件中声明?
提前致谢
答案 0 :(得分:0)
Rufus Scheduler似乎正是我想要的,它非常整洁并且运行顺畅。
我必须要做的一件事是通过Sinatra而不是纯机架运行应用程序,因为原始的Rack应用程序没有在/ feed调用上相应地刷新结果,但是Sinatra工作得非常好。