我有一个 Rails 网络应用程序(Devise + Koala),用户使用 Facebook 登录。用户在应用程序内与他们的 Facebook 朋友互动。
出于缓存目的导入用户 Facebook 好友列表非常耗时。
这里的最佳实践是什么:我应该尽量避免朋友缓存吗?我应该在守护进程后台线程中进行导入吗?
我知道用于更新的 Facebook 实时 API。
我有一个 Rails 网络应用程序(Devise + Koala),用户使用 Facebook 登录。用户在应用程序内与他们的 Facebook 朋友互动。
出于缓存目的导入用户 Facebook 好友列表非常耗时。
这里的最佳实践是什么:我应该尽量避免朋友缓存吗?我应该在守护进程后台线程中进行导入吗?
我知道用于更新的 Facebook 实时 API。
将列表存储在缓存中将比每次要检索用户的朋友时在 facebook 上查找它们更省时。
Postgres 有一种称为 hstore 的数据类型,它允许您将数据作为散列而不是序列化类型存储在列中。您可以使用此 gem 添加到 Rails: https ://github.com/softa/activerecord-postgres-hstore
它使存储诸如 Facebook 好友缓存之类的东西变得更容易;您可以使用 SQL 语句搜索散列。
因此,在您的情况下,您可以告诉 facebook 订阅对用户好友连接的更改,并将其指向您的应用程序中的回调,该回调会更新用户的好友列表缓存。请注意,您需要用新列表替换整个哈希,因为不可能对 hstore 进行原子操作。祝你好运!