Rails中的中等规模重复任务

时间:2014-05-24 22:32:53

标签: ruby-on-rails ruby cron

我正在构建一个跟踪游戏统计数据的网络应用。该游戏的API(Steam Web API)仅允许我从最近播放的匹配中检索数据。

当用户请求跟踪他们的统计信息时,我需要每10分钟左右调用一次Steam Web API来检查他们是否已经播放了另一个匹配项,然后将其存储在数据库中(如果有)。问题是,我每隔10分钟检查每个用户......

有没有办法有效地安排这个,以便服务器不会超载?该应用程序可能为10,000多名用户提供服务。

如果我有明显的错误,请随时更正此问题中的任何内容。

1 个答案:

答案 0 :(得分:1)

在ruby中有许多重复事件的宝石,例如:

但是,如果您要拥有大量用户,并且担心服务器负载,我建议您不要使用rails应用程序来执行此操作。

相反,构建另一个不在rails应用程序上运行的服务,以使用统计信息更新数据库。

像这样与您的主应用程序分离的独立服务允许您轻松地将其放在另一台服务器上,和/或让它独立于您的webapp进行扩展。