Sha256: 7cb25c12ceec5528eb73ef98a26fe2f5b458915c01440f11f0d6019206b801be
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
require 'spec_helper' RSpec.describe 'semaphore' do let(:name) { 'default' } subject { Sidekiq::LimitFetch::Global::Semaphore.new name } it 'should have no limit by default' do expect(subject.limit).not_to be end it 'should set limit' do subject.limit = 4 expect(subject.limit).to eq 4 end it 'should acquire and count active tasks' do 3.times { subject.acquire } expect(subject.probed).to eq 3 end it 'should acquire tasks with regard to limit' do subject.limit = 4 6.times { subject.acquire } expect(subject.probed).to eq 4 end it 'should acquire tasks with regard to process limit' do subject.process_limit = 4 6.times { subject.acquire } expect(subject.probed).to eq 4 end it 'should release active tasks' do 6.times { subject.acquire } 3.times { subject.release } expect(subject.probed).to eq 3 end it 'should pause tasks' do 3.times { subject.acquire } subject.pause 2.times { subject.acquire } expect(subject.probed).to eq 3 2.times { subject.release } expect(subject.probed).to eq 1 end it 'should unpause tasks' do subject.pause 3.times { subject.acquire } subject.unpause 2.times { subject.acquire } expect(subject.probed).to eq 2 end it 'should pause tasks for a limited time' do 3.times { subject.acquire } subject.pause_for_ms 50 2.times { subject.acquire } expect(subject.probed).to eq 3 sleep(100.0 / 1000) 2.times { subject.acquire } expect(subject.probed).to eq 5 end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sidekiq-limit_fetch-2.4.2 | spec/sidekiq/limit_fetch/semaphore_spec.rb |