summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorCorey Hulen <corey@hulen.com>2016-10-25 05:56:06 -0700
committerChristopher Speller <crspeller@gmail.com>2016-10-25 08:56:06 -0400
commit3e1fc76bf97703e730038d7bead7a35cbda970cd (patch)
tree48d2db5b3a1eba82ecaab8b27f7aa590fcaaf8f3 /api
parent57eb69927c3f990326e13888e40f0feb740a4e19 (diff)
downloadchat-3e1fc76bf97703e730038d7bead7a35cbda970cd.tar.gz
chat-3e1fc76bf97703e730038d7bead7a35cbda970cd.tar.bz2
chat-3e1fc76bf97703e730038d7bead7a35cbda970cd.zip
Fixing clustering problem (#4320)
Diffstat (limited to 'api')
-rw-r--r--api/context.go11
-rw-r--r--api/web_hub.go23
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) {