Class: TQ::Queue
- Inherits:
-
Object
- Object
- TQ::Queue
- Defined in:
- lib/tq.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#queue ⇒ Object
readonly
Returns the value of attribute queue.
Instance Method Summary collapse
-
#extend!(task, dur) ⇒ Object
Note: does not actually extend the time, but sets the total duration to the given amount (minus any already elapsed time).
- #finish!(task) ⇒ Object
-
#initialize(client, spec) ⇒ Queue
constructor
A new instance of Queue.
- #lease! ⇒ Object
- #push!(payload, tag = nil) ⇒ Object
- #queue_name ⇒ Object
Constructor Details
#initialize(client, spec) ⇒ Queue
Returns a new instance of Queue.
120 121 122 123 |
# File 'lib/tq.rb', line 120 def initialize(client, spec) @client = client @queue = spec end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
119 120 121 |
# File 'lib/tq.rb', line 119 def client @client end |
#queue ⇒ Object (readonly)
Returns the value of attribute queue.
119 120 121 |
# File 'lib/tq.rb', line 119 def queue @queue end |
Instance Method Details
#extend!(task, dur) ⇒ Object
Note: does not actually extend the time, but sets the total duration to the given amount (minus any already elapsed time).
145 146 147 148 149 150 151 152 153 154 |
# 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) ⇒ Object
168 169 170 171 172 173 |
# 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! ⇒ Object
129 130 131 132 133 134 135 136 137 138 139 |
# 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) ⇒ Object
156 157 158 159 160 161 162 163 164 165 166 |
# 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 ⇒ Object
125 126 127 |
# File 'lib/tq.rb', line 125 def queue_name queue.queue_name end |