class Syncano::BatchQueue
Class representing queues used in batch requests
Constants
- REQUEST_LIMIT
Limit for amount of batch operations send in one request
Attributes
client[RW]
queue[RW]
responses[RW]
Public Class Methods
new(client)
click to toggle source
Constructor for Syncano::BatchQueue
@param [Syncano::Clients::Base] client
Calls superclass method
# File lib/syncano/batch_queue.rb, line 10 def initialize(client) super() self.client = client self.queue = [] self.responses = [] end
Public Instance Methods
<<(element)
click to toggle source
Alias for “add” method @param [Syncano::BatchQueueElement] element
# File lib/syncano/batch_queue.rb, line 26 def <<(element) add(element) end
add(element)
click to toggle source
Adds element to the queue and prune it if is full @param [Syncano::BatchQueueElement] element
# File lib/syncano/batch_queue.rb, line 19 def add(element) self.queue << element prune! while full? end
count()
click to toggle source
Counts elements in the queue @return [Integer]
# File lib/syncano/batch_queue.rb, line 32 def count queue.count end
full?()
click to toggle source
Checks if queue is full @return [TrueClass, FalseClass]
# File lib/syncano/batch_queue.rb, line 38 def full? count >= REQUEST_LIMIT end
prune!()
click to toggle source
Prunes queue and makes batch request to the api @return [Array] collection of Syncano::Response
objects
# File lib/syncano/batch_queue.rb, line 44 def prune! part = self.queue.slice!(0, 10) ::Jimson::Client.batch(client) do |batch_client| part.each do |element| element.perform!(batch_client) end end.collect { |response| self.responses << response } end