Class: Reqless::ClientQueuePatterns

Inherits:
Object
  • Object
show all
Defined in:
lib/reqless.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ ClientQueuePatterns

Returns a new instance of ClientQueuePatterns.



149
150
151
# File 'lib/reqless.rb', line 149

def initialize(client)
  @client = client
end

Instance Method Details

#get_queue_identifier_patternsObject



153
154
155
156
157
158
159
160
161
# File 'lib/reqless.rb', line 153

def get_queue_identifier_patterns
  serialized_patterns = @client.call('queueIdentifierPatterns.getAll')
  identifiers_with_serialized_patterns = JSON.parse(serialized_patterns)
  Hash[
    identifiers_with_serialized_patterns.map do |identifier, serialized_pattern|
      [identifier, JSON.parse(serialized_pattern)]
    end
  ]
end

#get_queue_priority_patternsObject



170
171
172
173
174
175
176
177
178
179
180
# File 'lib/reqless.rb', line 170

def get_queue_priority_patterns
  serialized_priority_patterns_json = @client.call('queuePriorityPatterns.getAll')
  serialized_priority_patterns = JSON.parse(serialized_priority_patterns_json)
  serialized_priority_patterns.map do |serialized_priority_pattern|
    priority_pattern = JSON.parse(serialized_priority_pattern)
    QueuePriorityPattern.new(
      priority_pattern['pattern'],
      priority_pattern.fetch('fairly', false),
    )
  end
end

#set_queue_identifier_patterns(identifier_patterns) ⇒ Object



163
164
165
166
167
168
# File 'lib/reqless.rb', line 163

def set_queue_identifier_patterns(identifier_patterns)
  args = identifier_patterns.flat_map do |identifier, pattern|
    [identifier, JSON.dump(pattern)]
  end
  @client.call('queueIdentifierPatterns.setAll', *args)
end

#set_queue_priority_patterns(queue_priority_patterns) ⇒ Object



182
183
184
185
186
187
188
189
190
# File 'lib/reqless.rb', line 182

def set_queue_priority_patterns(queue_priority_patterns)
  serialized_patterns = queue_priority_patterns.map do |queue_priority_pattern|
    JSON.dump({
      'pattern': queue_priority_pattern.pattern,
      'fairly': queue_priority_pattern.should_distribute_fairly,
    })
  end
  @client.call('queuePriorityPatterns.setAll', *serialized_patterns)
end