我有一个Rails网络应用程序(Devise + Koala),用户使用Facebook登录。用户与应用内的Facebook好友进行互动。
导入用户Facebook好友列表以进行缓存是非常耗时的。
这里有哪些最佳做法: 我应该尽量避免朋友缓存吗? 我应该在守护程序后台线程中进行导入吗?
我知道Facebook的实时更新API。
答案 0 :(得分:0)
将列表存储在缓存中比每次想要检索用户的朋友时都要少得多。
Postgres有一个名为hstore的数据类型,它允许您将列中的数据存储为散列而不是序列化类型。您可以使用此gem添加到rails: https://github.com/softa/activerecord-postgres-hstore
它使得存储像facebook朋友的缓存更容易;您可以使用SQL语句搜索哈希值。
因此,在您的情况下,您可以告诉Facebook订阅对用户的朋友连接的更改,并将其指向您的应用程序中的回调,该回调更新用户的朋友列表缓存。请注意,您将需要使用新列表替换整个哈希,因为无法在hstore上执行原子操作。祝你好运!