Class: WorkItems::UpdateNamespaceTraversalIdsService

Inherits:
Object
  • Object
show all
Includes:
Gitlab::ExclusiveLeaseHelpers
Defined in:
app/services/work_items/update_namespace_traversal_ids_service.rb

Constant Summary collapse

BATCH_SIZE =
100
LEASE_TTL =
5.minutes
LEASE_TRY_AFTER =
3.seconds

Constants included from Gitlab::ExclusiveLeaseHelpers

Gitlab::ExclusiveLeaseHelpers::FailedToObtainLockError

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Gitlab::ExclusiveLeaseHelpers

#in_lock

Constructor Details

#initialize(namespace) ⇒ UpdateNamespaceTraversalIdsService

Returns a new instance of UpdateNamespaceTraversalIdsService.



15
16
17
# File 'app/services/work_items/update_namespace_traversal_ids_service.rb', line 15

def initialize(namespace)
  @namespace = namespace
end

Class Method Details

.execute(namespace) ⇒ Object



11
12
13
# File 'app/services/work_items/update_namespace_traversal_ids_service.rb', line 11

def self.execute(namespace)
  new(namespace).execute
end

Instance Method Details

#executeObject



19
20
21
# File 'app/services/work_items/update_namespace_traversal_ids_service.rb', line 19

def execute
  in_lock(lease_key, ttl: LEASE_TTL, sleep_sec: LEASE_TRY_AFTER) { update_work_items }
end