1

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

出于缓存目的导入用户 Facebook 好友列表非常耗时。

这里的最佳实践是什么:我应该尽量避免朋友缓存吗?我应该在守护进程后台线程中进行导入吗?

我知道用于更新的 Facebook 实时 API。

4

1 回答 1

0

将列表存储在缓存中将比每次要检索用户的朋友时在 facebook 上查找它们更省时。

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

它使存储诸如 Facebook 好友缓存之类的东西变得更容易;您可以使用 SQL 语句搜索散列。

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

于 2012-08-20T06:52:23.623 回答