From 097289f8e473c799ee752aa56e08f605110f5217 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Fri, 27 Jan 2017 14:07:34 -0500 Subject: Merge 3.6.2 into master (#5211) * Add webhook cache * Add channel by name cache * Fxing profiles in channels cache * Fix merge --- app/web_hub.go | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) (limited to 'app/web_hub.go') diff --git a/app/web_hub.go b/app/web_hub.go index 28d2c0095..c8fbfbc34 100644 --- a/app/web_hub.go +++ b/app/web_hub.go @@ -103,18 +103,35 @@ func PublishSkipClusterSend(message *model.WebSocketEvent) { } } -func InvalidateCacheForChannel(channelId string) { - InvalidateCacheForChannelSkipClusterSend(channelId) +func InvalidateCacheForChannel(channel *model.Channel) { + InvalidateCacheForChannelSkipClusterSend(channel.Id) + InvalidateCacheForChannelByNameSkipClusterSend(channel.TeamId, channel.Name) if cluster := einterfaces.GetClusterInterface(); cluster != nil { - cluster.InvalidateCacheForChannel(channelId) + cluster.InvalidateCacheForChannel(channel.Id) + cluster.InvalidateCacheForChannelByName(channel.TeamId, channel.Name) + } +} + +func InvalidateCacheForChannelMembers(channelId string) { + InvalidateCacheForChannelMembersSkipClusterSend(channelId) + + if cluster := einterfaces.GetClusterInterface(); cluster != nil { + cluster.InvalidateCacheForChannelMembers(channelId) } } func InvalidateCacheForChannelSkipClusterSend(channelId string) { + Srv.Store.Channel().InvalidateChannel(channelId) +} + +func InvalidateCacheForChannelMembersSkipClusterSend(channelId string) { Srv.Store.User().InvalidateProfilesInChannelCache(channelId) Srv.Store.Channel().InvalidateMemberCount(channelId) - Srv.Store.Channel().InvalidateChannel(channelId) +} + +func InvalidateCacheForChannelByNameSkipClusterSend(teamId, name string) { + Srv.Store.Channel().InvalidateChannelByName(teamId, name) } func InvalidateCacheForChannelPosts(channelId string) { @@ -147,6 +164,18 @@ func InvalidateCacheForUserSkipClusterSend(userId string) { } } +func InvalidateCacheForWebhook(webhookId string) { + InvalidateCacheForWebhookSkipClusterSend(webhookId) + + if cluster := einterfaces.GetClusterInterface(); cluster != nil { + cluster.InvalidateCacheForWebhook(webhookId) + } +} + +func InvalidateCacheForWebhookSkipClusterSend(webhookId string) { + Srv.Store.Webhook().InvalidateWebhookCache(webhookId) +} + func InvalidateWebConnSessionCacheForUser(userId string) { if len(hubs) != 0 { GetHubForUserId(userId).InvalidateUser(userId) -- cgit v1.2.3-1-g7c22