diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/models/concerns/throttled_touch.rb | 10 | ||||
-rw-r--r-- | app/models/issue.rb | 1 | ||||
-rw-r--r-- | app/models/merge_request.rb | 1 | ||||
-rw-r--r-- | app/models/note.rb | 36 |
4 files changed, 1 insertions, 47 deletions
diff --git a/app/models/concerns/throttled_touch.rb b/app/models/concerns/throttled_touch.rb deleted file mode 100644 index ad0ff0f20d4..00000000000 --- a/app/models/concerns/throttled_touch.rb +++ /dev/null @@ -1,10 +0,0 @@ -# ThrottledTouch can be used to throttle the number of updates triggered by -# calling "touch" on an ActiveRecord model. -module ThrottledTouch - # The amount of time to wait before "touch" can update a record again. - TOUCH_INTERVAL = 1.minute - - def touch(*args) - super if (Time.zone.now - updated_at) > TOUCH_INTERVAL - end -end diff --git a/app/models/issue.rb b/app/models/issue.rb index 33db197e612..d6ef58d150b 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -9,7 +9,6 @@ class Issue < ActiveRecord::Base include FasterCacheKeys include RelativePositioning include TimeTrackable - include ThrottledTouch DueDateStruct = Struct.new(:title, :name).freeze NoDueDate = DueDateStruct.new('No Due Date', '0').freeze diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 422f138c4ea..d7faf22fc46 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -7,7 +7,6 @@ class MergeRequest < ActiveRecord::Base include TimeTrackable include ManualInverseAssociation include EachBatch - include ThrottledTouch ignore_column :locked_at, :ref_fetched diff --git a/app/models/note.rb b/app/models/note.rb index c4c2ab8e67d..517d7985b8c 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -15,7 +15,6 @@ class Note < ActiveRecord::Base include IgnorableColumn include Editable include Gitlab::SQL::Pattern - include ThrottledTouch module SpecialRole FIRST_TIME_CONTRIBUTOR = :first_time_contributor @@ -56,7 +55,7 @@ class Note < ActiveRecord::Base participant :author belongs_to :project - belongs_to :noteable, polymorphic: true # rubocop:disable Cop/PolymorphicAssociations + belongs_to :noteable, polymorphic: true, touch: true # rubocop:disable Cop/PolymorphicAssociations belongs_to :author, class_name: "User" belongs_to :updated_by, class_name: "User" belongs_to :last_edited_by, class_name: 'User' @@ -119,7 +118,6 @@ class Note < ActiveRecord::Base before_validation :set_discussion_id, on: :create after_save :keep_around_commit, if: :for_project_noteable? after_save :expire_etag_cache - after_save :touch_noteable after_destroy :expire_etag_cache class << self @@ -371,38 +369,6 @@ class Note < ActiveRecord::Base Gitlab::EtagCaching::Store.new.touch(key) end - def touch(*args) - # We're not using an explicit transaction here because this would in all - # cases result in all future queries going to the primary, even if no writes - # are performed. - # - # We touch the noteable first so its SELECT query can run before our writes, - # ensuring it runs on a secondary (if no prior write took place). - touch_noteable - super - end - - # By default Rails will issue an "SELECT *" for the relation, which is - # overkill for just updating the timestamps. To work around this we manually - # touch the data so we can SELECT only the columns we need. - def touch_noteable - # Commits are not stored in the DB so we can't touch them. - return if for_commit? - - assoc = association(:noteable) - - noteable_object = - if assoc.loaded? - noteable - else - # If the object is not loaded (e.g. when notes are loaded async) we - # _only_ want the data we actually need. - assoc.scope.select(:id, :updated_at).take - end - - noteable_object&.touch - end - def banzai_render_context(field) super.merge(noteable: noteable) end |