Fixing clustering problem (#4320)
Этот коммит содержится в:
коммит произвёл
Christopher Speller
родитель
57eb69927c
Коммит
3e1fc76bf9
@@ -474,6 +474,14 @@ func GetSession(token string) *model.Session {
|
|||||||
|
|
||||||
func RemoveAllSessionsForUserId(userId string) {
|
func RemoveAllSessionsForUserId(userId string) {
|
||||||
|
|
||||||
|
RemoveAllSessionsForUserIdSkipClusterSend(userId)
|
||||||
|
|
||||||
|
if einterfaces.GetClusterInterface() != nil {
|
||||||
|
einterfaces.GetClusterInterface().RemoveAllSessionsForUserId(userId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func RemoveAllSessionsForUserIdSkipClusterSend(userId string) {
|
||||||
keys := sessionCache.Keys()
|
keys := sessionCache.Keys()
|
||||||
|
|
||||||
for _, key := range 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) {
|
func AddSessionToCache(session *model.Session) {
|
||||||
|
|||||||
@@ -101,30 +101,19 @@ func PublishSkipClusterSend(message *model.WebSocketEvent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func InvalidateCacheForUser(userId string) {
|
func InvalidateCacheForUser(userId string) {
|
||||||
|
InvalidateCacheForUserSkipClusterSend(userId)
|
||||||
Srv.Store.Channel().InvalidateAllChannelMembersForUser(userId)
|
|
||||||
|
|
||||||
for _, hub := range hubs {
|
|
||||||
hub.InvalidateUser(userId)
|
|
||||||
}
|
|
||||||
|
|
||||||
if einterfaces.GetClusterInterface() != nil {
|
if einterfaces.GetClusterInterface() != nil {
|
||||||
einterfaces.GetClusterInterface().InvalidateCacheForUser(userId)
|
einterfaces.GetClusterInterface().InvalidateCacheForUser(userId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func InvalidateCacheForChannel(channelId string) {
|
func InvalidateCacheForUserSkipClusterSend(userId string) {
|
||||||
|
Srv.Store.Channel().InvalidateAllChannelMembersForUser(userId)
|
||||||
|
|
||||||
// XXX TODO FIX ME
|
for _, hub := range hubs {
|
||||||
// This can be removed, but the performance branch
|
hub.InvalidateUser(userId)
|
||||||
// needs to be merged into master so it can be removed
|
}
|
||||||
// from the enterprise repo as well.
|
|
||||||
|
|
||||||
// hub.invalidateChannel <- channelId
|
|
||||||
|
|
||||||
// if einterfaces.GetClusterInterface() != nil {
|
|
||||||
// einterfaces.GetClusterInterface().InvalidateCacheForChannel(channelId)
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Hub) Register(webConn *WebConn) {
|
func (h *Hub) Register(webConn *WebConn) {
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ type ClusterInterface interface {
|
|||||||
GetClusterInfos() []*model.ClusterInfo
|
GetClusterInfos() []*model.ClusterInfo
|
||||||
RemoveAllSessionsForUserId(userId string)
|
RemoveAllSessionsForUserId(userId string)
|
||||||
InvalidateCacheForUser(userId string)
|
InvalidateCacheForUser(userId string)
|
||||||
InvalidateCacheForChannel(channelId string)
|
|
||||||
Publish(event *model.WebSocketEvent)
|
Publish(event *model.WebSocketEvent)
|
||||||
UpdateStatus(status *model.Status)
|
UpdateStatus(status *model.Status)
|
||||||
GetLogs() ([]string, *model.AppError)
|
GetLogs() ([]string, *model.AppError)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user