Class: Cloudflare::QueueBatch
- Inherits:
-
Object
- Object
- Cloudflare::QueueBatch
- Defined in:
- lib/homura/runtime/queue.rb
Overview
Wraps the MessageBatch passed to ‘queue(batch, env, ctx)` in worker.mjs. Exposes `queue` name, an Array of QueueMessage, and batch-level ack/retry helpers.
Instance Attribute Summary collapse
-
#js ⇒ Object
readonly
Returns the value of attribute js.
Instance Method Summary collapse
- #ack_all ⇒ Object
-
#initialize(js) ⇒ QueueBatch
constructor
A new instance of QueueBatch.
- #messages ⇒ Object
- #queue ⇒ Object
- #retry_all(delay_seconds: nil) ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize(js) ⇒ QueueBatch
Returns a new instance of QueueBatch.
297 298 299 |
# File 'lib/homura/runtime/queue.rb', line 297 def initialize(js) @js = js end |
Instance Attribute Details
#js ⇒ Object (readonly)
Returns the value of attribute js.
295 296 297 |
# File 'lib/homura/runtime/queue.rb', line 295 def js @js end |
Instance Method Details
#ack_all ⇒ Object
325 326 327 328 329 |
# File 'lib/homura/runtime/queue.rb', line 325 def ack_all js = @js `(#{js} && typeof #{js}.ackAll === 'function' ? #{js}.ackAll() : null)` nil end |
#messages ⇒ Object
306 307 308 309 310 311 312 313 314 315 316 317 318 319 |
# File 'lib/homura/runtime/queue.rb', line 306 def return @messages if @messages js = @js arr = `(#{js} && Array.isArray(#{js}.messages) ? #{js}.messages : [])` out = [] len = `#{arr}.length` i = 0 while i < len out << QueueMessage.new(`#{arr}[#{i}]`) i += 1 end @messages = out end |
#queue ⇒ Object
301 302 303 304 |
# File 'lib/homura/runtime/queue.rb', line 301 def queue js = @js `(#{js} && #{js}.queue ? String(#{js}.queue) : '')` end |
#retry_all(delay_seconds: nil) ⇒ Object
331 332 333 334 335 336 337 338 339 340 341 |
# File 'lib/homura/runtime/queue.rb', line 331 def retry_all(delay_seconds: nil) js = @js if delay_seconds ds = delay_seconds.to_i `(#{js} && typeof #{js}.retryAll === 'function' ? #{js}.retryAll({ delaySeconds: #{ds} }) : null)` else `(#{js} && typeof #{js}.retryAll === 'function' ? #{js}.retryAll() : null)` end nil end |
#size ⇒ Object
321 322 323 |
# File 'lib/homura/runtime/queue.rb', line 321 def size .length end |