服务器启动后调用 rails 3 控制器操作

Call a rails 3 controller action after server startup

我们有一个 rails 3 控制器动作调用远程 api 并缓存响应。不幸的是,这是一个缓慢的过程,因此第一个调用该操作的人必须等待很长时间才能得到响应。我如何在 rails 开始时(或在不久之后的某个时间点)调用此控制器操作,以便第一个用户不必有那么长的延迟。

提前致谢

如果你想在启动时加载一些数据,我建议在初始化程序中这样做,在适当的地方设置一个变量,然后让你的控制器只从该变量中读取。

但是现在您正在为 每个 应用程序服务器实例访问远程 API。在每个实例中刷新缓存也将具有挑战性。更好的方法是将数据存储在 Redis 或 Memcached 等共享存储中,然后使用 cron 作业设置它,例如通过 whenever gem。 Rails 并不是真正为请求间缓存设计的。