2021-04-30 12:12:30 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Issuables
|
|
|
|
class ClearGroupsIssueCounterWorker
|
|
|
|
include ApplicationWorker
|
|
|
|
|
2021-07-21 12:09:35 +00:00
|
|
|
data_consistency :always
|
|
|
|
|
2021-04-30 12:12:30 +00:00
|
|
|
idempotent!
|
|
|
|
urgency :low
|
2021-10-27 15:13:41 +00:00
|
|
|
feature_category :team_planning
|
2021-04-30 12:12:30 +00:00
|
|
|
|
|
|
|
def perform(group_ids = [])
|
|
|
|
return if group_ids.empty?
|
|
|
|
|
|
|
|
groups_with_ancestors = Gitlab::ObjectHierarchy
|
|
|
|
.new(Group.by_id(group_ids))
|
|
|
|
.base_and_ancestors
|
|
|
|
|
|
|
|
clear_cached_count(groups_with_ancestors)
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def clear_cached_count(groups)
|
|
|
|
groups.each do |group|
|
|
|
|
Groups::OpenIssuesCountService.new(group).clear_all_cache_keys
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|