class TQ::Queue

Attributes

client[R]
queue[R]

Public Class Methods

new(client, spec) click to toggle source
# File lib/tq.rb, line 120
def initialize(client, spec)
  @client = client
  @queue = spec
end

Public Instance Methods

extend!(task, dur) click to toggle source

Note: does not actually extend the time, but sets the total duration to the given amount (minus any already elapsed time).

# File lib/tq.rb, line 145
def extend!(task, dur)
  msg = { :lease_duration => dur,
          :schedule_time => task.schedule_time,
          :response_view => 'FULL'
        }
  results = client.renew_task_lease( task.name,
      CloudTasks::RenewLeaseRequest.new( **msg )
  )
  return new_task(results)
end
finish!(task) click to toggle source
# File lib/tq.rb, line 168
def finish!(task)
  results = client.acknowledge_task( task.name,
      CloudTasks::AcknowledgeTaskRequest.new( :schedule_time => task.schedule_time )
  )
  return
end
lease!() click to toggle source
# File lib/tq.rb, line 129
def lease!
  msg = { :lease_duration => queue.lease_duration, 
          :max_tasks => queue.max_tasks,
          :response_view => 'FULL'
        }
  results = client.lease_tasks( queue_name,
      CloudTasks::LeaseTasksRequest.new( **msg )
  )
  items = results.tasks || []
  items.map {|t| new_task(t)}
end
push!(payload, tag=nil) click to toggle source
# File lib/tq.rb, line 156
def push!(payload, tag=nil)
  msg = { :payload => encode(payload), :tag => tag }.reject {|k,v| v.nil?}
  results = client.create_task( queue_name, 
      CloudTasks::CreateTaskRequest.new( 
          :task => CloudTasks::Task.new(
              :pull_message => CloudTasks::PullMessage.new( **msg )
          )
      )
  )
  new_task(results)
end
queue_name() click to toggle source
# File lib/tq.rb, line 125
def queue_name
  queue.queue_name
end

Private Instance Methods

encode(obj) click to toggle source
# File lib/tq.rb, line 182
def encode(obj)
  JSON.dump(obj)
end
new_task(t) click to toggle source
# File lib/tq.rb, line 178
def new_task(t)
  TQ::Task.new self, t
end