在Rails应用程序中缓存Facebook好友的最佳做法?

时间:2012-07-23 08:33:17

标签: ruby-on-rails facebook facebook-graph-api devise koala

我有一个Rails网络应用程序(Devise + Koala),用户使用Facebook登录。用户与应用内的Facebook好友进行互动。

导入用户Facebook好友列表以进行缓存是非常耗时的。

这里有哪些最佳做法: 我应该尽量避免朋友缓存吗? 我应该在守护程序后台线程中进行导入吗?

我知道Facebook的实时更新API。

1 个答案:

答案 0 :(得分:0)

将列表存储在缓存中比每次想要检索用户的朋友时都要少得多。

Postgres有一个名为hstore的数据类型,它允许您将列中的数据存储为散列而不是序列化类型。您可以使用此gem添加到rails: https://github.com/softa/activerecord-postgres-hstore

它使得存储像facebook朋友的缓存更容易;您可以使用SQL语句搜索哈希值。

因此,在您的情况下,您可以告诉Facebook订阅对用户的朋友连接的更改,并将其指向您的应用程序中的回调,该回调更新用户的朋友列表缓存。请注意,您将需要使用新列表替换整个哈希,因为无法在hstore上执行原子操作。祝你好运!