Class: FlushCounterIncrementsWorker
- Inherits:
-
Object
- Object
- FlushCounterIncrementsWorker
- Includes:
- ApplicationWorker
- Defined in:
- app/workers/flush_counter_increments_worker.rb
Overview
Invoked by CounterAttribute concern when incrementing counter attributes. The method `flush_increments_to_database!` that this worker uses is itself idempotent as it runs with exclusive lease to ensure that only one instance at the time can flush increments from Redis to the database.
Constant Summary
Constants included from ApplicationWorker
ApplicationWorker::LOGGING_EXTRA_KEY
Constants included from WorkerAttributes
WorkerAttributes::NAMESPACE_WEIGHTS, WorkerAttributes::VALID_RESOURCE_BOUNDARIES, WorkerAttributes::VALID_URGENCIES
Instance Method Summary collapse
Methods included from Gitlab::SidekiqVersioning::Worker
Methods included from WorkerContext
Instance Method Details
#perform(model_name, model_id, attribute) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'app/workers/flush_counter_increments_worker.rb', line 17 def perform(model_name, model_id, attribute) return unless self.class.const_defined?(model_name) model_class = model_name.constantize model = model_class.find_by_id(model_id) return unless model model.flush_increments_to_database!(attribute) end |