缓存或后台作业是否会提高我的Rails应用程序性能?

时间:2015-08-11 07:18:48

标签: ruby-on-rails performance caching heroku

My Rails App通过Nylas API同步gmail中的日历活动。我正在我的应用程序上存储所有事件和相关的日历(创建新的或更新现有的)。这需要很长时间,事实上,每当我尝试同步日历时,我的Heroku托管Rails应用程序都会出现超时错误。不知道为什么需要很长时间。所以为了做出反应,我想要开始缓存(使用Redis或Memcached)数据(仍然不知道我将如何做到这一点)或在后台作业中运行同步(使用Delayed_Job或Resque)。

我想知道其他人如何解决这个问题。我们不仅会对采取何种方法提出一些反馈意见,还会对 中的指针表示赞赏。

2 个答案:

答案 0 :(得分:0)

您可以使用两个但主要是后台作业,delayed_job或sidekiq。 您还可以运行定期更新应用中日历数据的cron任务。

要获取数据,您可以从内存存储库然后数据库中获取数据,其中memcache将非常有用。

答案 1 :(得分:0)

如果您需要在应用中快速,持久地访问最终来自外部系统的大量日历事件,那么我就会创建(实际上已经创建)日历和事件的模型。从API的结构来看,结构应该是相当明显的,我只是将它们保存在您的数据库中,这样您就可以使用ActiveRecord方法来检索/排序它们。

您不太可能需要在模型顶部使用缓存层。

同步绝对是后台工作。