Sha256: 814f94adbef7b39a551d931982c7f6cc2542fd9fbba9574b5dad57fb4fd17b0f
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
require 'reqless/queue_patterns_helper' module Reqless module JobReservers module Strategies end end end module Reqless::JobReservers::Strategies::Filtering # @param [Enumerable] queues - a source of queues # @param [Array] regexes - a list of regexes to match against. # Return an enumerator of the filtered queues in # in prioritized order. def self.default( queues, regexes, queue_identifier_patterns, queue_priority_patterns ) Enumerator.new do |yielder| # Map queues to their names mapped_queues = queues.reduce({}) do |hash,queue| hash[queue.name] = queue hash end # Filter the queue names against the regexes provided. matches = Reqless::QueuePatternsHelper.expand_queues(regexes, mapped_queues.keys, queue_identifier_patterns) # Prioritize the queues. prioritized_names = Reqless::QueuePatternsHelper.prioritize_queues(queue_priority_patterns, matches) prioritized_names.each do |name| queue = mapped_queues[name] if queue yielder << queue end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
reqless-0.0.5 | lib/reqless/job_reservers/strategies/filtering.rb |