Module: Import::Framework::ProgressTracking

Constant Summary collapse

CACHE_EXPIRATION =
3.days.to_i

Instance Method Summary collapse

Instance Method Details

#processed_entry?(scope:, data:) ⇒ Boolean



22
23
24
# File 'lib/import/framework/progress_tracking.rb', line 22

def processed_entry?(scope:, data:)
  Gitlab::Cache::Import::Caching.set_includes?(cache_key(scope), data)
end

#save_processed_entry(scope:, data:) ⇒ Object



18
19
20
# File 'lib/import/framework/progress_tracking.rb', line 18

def save_processed_entry(scope:, data:)
  Gitlab::Cache::Import::Caching.set_add(cache_key(scope), data, timeout: CACHE_EXPIRATION)
end

#with_progress_tracking(scope:, data:) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/import/framework/progress_tracking.rb', line 8

def with_progress_tracking(scope:, data:)
  return true if processed_entry?(scope: scope, data: data)

  result = yield

  save_processed_entry(scope: scope, data: data)

  result
end