32 lines
636 B
Ruby
32 lines
636 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Issuables
|
|
class ClearGroupsIssueCounterWorker
|
|
include ApplicationWorker
|
|
|
|
data_consistency :always
|
|
|
|
idempotent!
|
|
urgency :low
|
|
feature_category :team_planning
|
|
|
|
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
|