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