diff options
author | Corey Hulen <corey@hulen.com> | 2016-10-25 05:56:06 -0700 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-10-25 08:56:06 -0400 |
commit | 3e1fc76bf97703e730038d7bead7a35cbda970cd (patch) | |
tree | 48d2db5b3a1eba82ecaab8b27f7aa590fcaaf8f3 /api | |
parent | 57eb69927c3f990326e13888e40f0feb740a4e19 (diff) | |
download | chat-3e1fc76bf97703e730038d7bead7a35cbda970cd.tar.gz chat-3e1fc76bf97703e730038d7bead7a35cbda970cd.tar.bz2 chat-3e1fc76bf97703e730038d7bead7a35cbda970cd.zip |
Fixing clustering problem (#4320)
Diffstat (limited to 'api')
-rw-r--r-- | api/context.go | 11 | ||||
-rw-r--r-- | api/web_hub.go | 23 |
2 files changed, 14 insertions, 20 deletions
diff --git a/api/context.go b/api/context.go index 257f43174..7466d0b05 100644 --- a/api/context.go +++ b/api/context.go @@ -474,6 +474,14 @@ func GetSession(token string) *model.Session { func RemoveAllSessionsForUserId(userId string) { + RemoveAllSessionsForUserIdSkipClusterSend(userId) + + if einterfaces.GetClusterInterface() != nil { + einterfaces.GetClusterInterface().RemoveAllSessionsForUserId(userId) + } +} + +func RemoveAllSessionsForUserIdSkipClusterSend(userId string) { keys := sessionCache.Keys() for _, key := range keys { @@ -485,9 +493,6 @@ func RemoveAllSessionsForUserId(userId string) { } } - if einterfaces.GetClusterInterface() != nil { - einterfaces.GetClusterInterface().RemoveAllSessionsForUserId(userId) - } } func AddSessionToCache(session *model.Session) { diff --git a/api/web_hub.go b/api/web_hub.go index 5f480880e..23c01eb1b 100644 --- a/api/web_hub.go +++ b/api/web_hub.go @@ -101,30 +101,19 @@ func PublishSkipClusterSend(message *model.WebSocketEvent) { } func InvalidateCacheForUser(userId string) { - - Srv.Store.Channel().InvalidateAllChannelMembersForUser(userId) - - for _, hub := range hubs { - hub.InvalidateUser(userId) - } + InvalidateCacheForUserSkipClusterSend(userId) if einterfaces.GetClusterInterface() != nil { einterfaces.GetClusterInterface().InvalidateCacheForUser(userId) } } -func InvalidateCacheForChannel(channelId string) { - - // XXX TODO FIX ME - // This can be removed, but the performance branch - // needs to be merged into master so it can be removed - // from the enterprise repo as well. - - // hub.invalidateChannel <- channelId +func InvalidateCacheForUserSkipClusterSend(userId string) { + Srv.Store.Channel().InvalidateAllChannelMembersForUser(userId) - // if einterfaces.GetClusterInterface() != nil { - // einterfaces.GetClusterInterface().InvalidateCacheForChannel(channelId) - // } + for _, hub := range hubs { + hub.InvalidateUser(userId) + } } func (h *Hub) Register(webConn *WebConn) { |