From d2c09e5ce1008de063ec82e4a36689147e3fcf6c Mon Sep 17 00:00:00 2001 From: Krzysztof Kotlarek Date: Tue, 13 Aug 2024 18:01:31 +1000 Subject: [PATCH] PERF: do not expire cache when PostActionType is saved (#28337) Reload is too expensive in a multisite environment. A proper way to expire cache is coming with the next PR. --- app/models/post_action_type.rb | 6 ++++-- db/fixtures/003_post_action_types.rb | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/models/post_action_type.rb b/app/models/post_action_type.rb index 27fbd5fcbe7..b0a47dcaa8e 100644 --- a/app/models/post_action_type.rb +++ b/app/models/post_action_type.rb @@ -5,8 +5,10 @@ class PostActionType < ActiveRecord::Base POST_ACTION_TYPE_PUBLIC_TYPE_IDS_KEY = "post_action_public_type_ids" LIKE_POST_ACTION_ID = 2 - after_save :expire_cache - after_destroy :expire_cache + after_save { expire_cache if !skip_expire_cache_callback } + after_destroy { expire_cache if !skip_expire_cache_callback } + + attr_accessor :skip_expire_cache_callback include AnonCacheInvalidator diff --git a/db/fixtures/003_post_action_types.rb b/db/fixtures/003_post_action_types.rb index be504a0eac9..fd631fcb0f2 100644 --- a/db/fixtures/003_post_action_types.rb +++ b/db/fixtures/003_post_action_types.rb @@ -6,6 +6,7 @@ PostActionType.seed do |s| s.is_flag = false s.icon = "heart" s.position = 2 + s.skip_expire_cache_callback = true end PostActionType.seed do |s| @@ -13,6 +14,7 @@ PostActionType.seed do |s| s.name_key = "off_topic" s.is_flag = true s.position = 3 + s.skip_expire_cache_callback = true end PostActionType.seed do |s| @@ -20,6 +22,7 @@ PostActionType.seed do |s| s.name_key = "inappropriate" s.is_flag = true s.position = 4 + s.skip_expire_cache_callback = true end PostActionType.seed do |s| @@ -27,6 +30,7 @@ PostActionType.seed do |s| s.name_key = "spam" s.is_flag = true s.position = 6 + s.skip_expire_cache_callback = true end PostActionType.seed do |s| @@ -34,6 +38,7 @@ PostActionType.seed do |s| s.name_key = "notify_user" s.is_flag = true s.position = 7 + s.skip_expire_cache_callback = true end PostActionType.seed do |s| @@ -41,4 +46,5 @@ PostActionType.seed do |s| s.name_key = "notify_moderators" s.is_flag = true s.position = 8 + s.skip_expire_cache_callback = true end