在特定时间间隔内获取 Ruby 的 Rack 应用程序的数据

发布于 2024-10-20 05:06:24 字数 559 浏览 5 评论 0原文

我有一个非常简单的 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 文件中声明?

提前致谢)

I have a very simple ruby rack app which retrieves information from a webservice and converts it to JSON.

#config.ru

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

So when starting the server it fetches the information, cache it and display the results withing /feed.
What I would like to do is from time to time reload that fetch_information_from_webservice re-assigning my_result a brand new value

So let's say, every 30 min the server will fetch external information again, cache it to the /feed and display it very quicly without bother the user.

Is there any way to do it without having to create an external script and load it as a cron job (like declaring inside the own configu.ru file?

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

新人笑 2024-10-27 05:06:24

Rufus Scheduler 似乎完全符合我的要求,它非常整洁且运行流畅。

我必须做的一件事是通过 Sinatra 而不是纯 Rack 运行应用程序,因为原始 Rack 应用程序不会在 /feed 调用上相应地刷新结果,但使用 Sinatra 效果很好。

Rufus Scheduler seems to do exactly what I wanted it's very neat and runs smoothly.

one thing I've had to do is run the app through Sinatra instead of pure rack since the raw Rack app wasn't refreshing the results accordingly on the /feed call, but with Sinatra is works pretty well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文