Class: Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitService
- Inherits:
-
Object
- Object
- Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitService
- Defined in:
- lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb
Constant Summary collapse
- REDIS_KEY_PREFIX =
'sidekiq:concurrency_limit'
Class Method Summary collapse
- .add_to_queue!(job, context) ⇒ Object
- .cleanup_stale_trackers(worker_name) ⇒ Object
- .concurrent_worker_count(worker_name) ⇒ Object
- .has_jobs_in_queue?(worker_name) ⇒ Boolean
- .metadata_key(worker_name) ⇒ Object
- .queue_size(worker_name) ⇒ Object
- .resume_processing!(worker_name, limit:) ⇒ Object
- .track_execution_end(worker_name) ⇒ Object
- .track_execution_start(worker_name) ⇒ Object
Instance Method Summary collapse
-
#initialize(worker_name) ⇒ ConcurrencyLimitService
constructor
A new instance of ConcurrencyLimitService.
Constructor Details
#initialize(worker_name) ⇒ ConcurrencyLimitService
Returns a new instance of ConcurrencyLimitService.
15 16 17 18 19 |
# File 'lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb', line 15 def initialize(worker_name) @worker_name = worker_name @queue_manager = QueueManager.new(worker_name: worker_name, prefix: REDIS_KEY_PREFIX) @worker_execution_tracker = WorkerExecutionTracker.new(worker_name: worker_name, prefix: REDIS_KEY_PREFIX) end |
Class Method Details
.add_to_queue!(job, context) ⇒ Object
22 23 24 |
# File 'lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb', line 22 def add_to_queue!(job, context) new(job['class']).add_to_queue!(job, context) end |
.cleanup_stale_trackers(worker_name) ⇒ Object
42 43 44 |
# File 'lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb', line 42 def cleanup_stale_trackers(worker_name) new(worker_name).cleanup_stale_trackers end |
.concurrent_worker_count(worker_name) ⇒ Object
54 55 56 |
# File 'lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb', line 54 def concurrent_worker_count(worker_name) new(worker_name).concurrent_worker_count end |
.has_jobs_in_queue?(worker_name) ⇒ Boolean
26 27 28 |
# File 'lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb', line 26 def has_jobs_in_queue?(worker_name) new(worker_name).has_jobs_in_queue? end |
.metadata_key(worker_name) ⇒ Object
38 39 40 |
# File 'lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb', line 38 def (worker_name) new(worker_name). end |
.queue_size(worker_name) ⇒ Object
34 35 36 |
# File 'lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb', line 34 def queue_size(worker_name) new(worker_name).queue_size end |
.resume_processing!(worker_name, limit:) ⇒ Object
30 31 32 |
# File 'lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb', line 30 def resume_processing!(worker_name, limit:) new(worker_name).resume_processing!(limit: limit) end |
.track_execution_end(worker_name) ⇒ Object
50 51 52 |
# File 'lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb', line 50 def track_execution_end(worker_name) new(worker_name).track_execution_end end |
.track_execution_start(worker_name) ⇒ Object
46 47 48 |
# File 'lib/gitlab/sidekiq_middleware/concurrency_limit/concurrency_limit_service.rb', line 46 def track_execution_start(worker_name) new(worker_name).track_execution_start end |