Class: Cloudflare::QueueBatch
- Inherits:
-
Object
- Object
- Cloudflare::QueueBatch
- Defined in:
- lib/cloudflare_workers/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.
258 259 260 |
# File 'lib/cloudflare_workers/queue.rb', line 258 def initialize(js) @js = js end |
Instance Attribute Details
#js ⇒ Object (readonly)
Returns the value of attribute js.
256 257 258 |
# File 'lib/cloudflare_workers/queue.rb', line 256 def js @js end |
Instance Method Details
#ack_all ⇒ Object
285 286 287 288 289 |
# File 'lib/cloudflare_workers/queue.rb', line 285 def ack_all js = @js `(#{js} && typeof #{js}.ackAll === 'function' ? #{js}.ackAll() : null)` nil end |
#messages ⇒ Object
267 268 269 270 271 272 273 274 275 276 277 278 279 |
# File 'lib/cloudflare_workers/queue.rb', line 267 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
262 263 264 265 |
# File 'lib/cloudflare_workers/queue.rb', line 262 def queue js = @js `(#{js} && #{js}.queue ? String(#{js}.queue) : '')` end |
#retry_all(delay_seconds: nil) ⇒ Object
291 292 293 294 295 296 297 298 299 300 |
# File 'lib/cloudflare_workers/queue.rb', line 291 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
281 282 283 |
# File 'lib/cloudflare_workers/queue.rb', line 281 def size .length end |