Class: Cloudflare::QueueContext
- Inherits:
-
Object
- Object
- Cloudflare::QueueContext
- Defined in:
- lib/homura/runtime/queue.rb
Overview
‘self` inside a `consume_queue do |batch| … end` block. Exposes env / ctx helpers alongside the batch so the block can reach the same D1 / KV / R2 bindings an HTTP route would. This keeps the consumer side consistent with Phase 9’s ScheduledContext.
Instance Attribute Summary collapse
-
#batch ⇒ Object
readonly
Returns the value of attribute batch.
-
#env ⇒ Object
readonly
Returns the value of attribute env.
-
#js_ctx ⇒ Object
readonly
Returns the value of attribute js_ctx.
-
#js_env ⇒ Object
readonly
Returns the value of attribute js_env.
Instance Method Summary collapse
- #ai ⇒ Object
- #bucket ⇒ Object
- #cf_ctx ⇒ Object
- #cf_env ⇒ Object
- #d1 ⇒ Object
- #db ⇒ Object
- #durable_object(name, id_or_name = nil) ⇒ Object
-
#initialize(batch, js_env, js_ctx) ⇒ QueueContext
constructor
A new instance of QueueContext.
- #jobs_queue ⇒ Object
- #kv ⇒ Object
- #send_email ⇒ Object
-
#wait_until(promise) ⇒ Object
Hand a long-running promise to ctx.waitUntil.
Constructor Details
#initialize(batch, js_env, js_ctx) ⇒ QueueContext
Returns a new instance of QueueContext.
363 364 365 366 367 368 |
# File 'lib/homura/runtime/queue.rb', line 363 def initialize(batch, js_env, js_ctx) @batch = batch @js_env = js_env @js_ctx = js_ctx @env = build_env(js_env) end |
Instance Attribute Details
#batch ⇒ Object (readonly)
Returns the value of attribute batch.
361 362 363 |
# File 'lib/homura/runtime/queue.rb', line 361 def batch @batch end |
#env ⇒ Object (readonly)
Returns the value of attribute env.
361 362 363 |
# File 'lib/homura/runtime/queue.rb', line 361 def env @env end |
#js_ctx ⇒ Object (readonly)
Returns the value of attribute js_ctx.
361 362 363 |
# File 'lib/homura/runtime/queue.rb', line 361 def js_ctx @js_ctx end |
#js_env ⇒ Object (readonly)
Returns the value of attribute js_env.
361 362 363 |
# File 'lib/homura/runtime/queue.rb', line 361 def js_env @js_env end |
Instance Method Details
#ai ⇒ Object
376 |
# File 'lib/homura/runtime/queue.rb', line 376 def ai; Cloudflare::Bindings.ai(env); end |
#bucket ⇒ Object
375 |
# File 'lib/homura/runtime/queue.rb', line 375 def bucket; env['cloudflare.BUCKET']; end |
#cf_ctx ⇒ Object
373 |
# File 'lib/homura/runtime/queue.rb', line 373 def cf_ctx; env['cloudflare.ctx']; end |
#cf_env ⇒ Object
372 |
# File 'lib/homura/runtime/queue.rb', line 372 def cf_env; env['cloudflare.env']; end |
#d1 ⇒ Object
370 |
# File 'lib/homura/runtime/queue.rb', line 370 def d1; env['cloudflare.DB']; end |
#db ⇒ Object
371 |
# File 'lib/homura/runtime/queue.rb', line 371 def db; d1; end |
#durable_object(name, id_or_name = nil) ⇒ Object
379 380 381 |
# File 'lib/homura/runtime/queue.rb', line 379 def durable_object(name, id_or_name = nil) Cloudflare::Bindings.durable_object(env, name, id_or_name) end |
#jobs_queue ⇒ Object
378 |
# File 'lib/homura/runtime/queue.rb', line 378 def jobs_queue; env['cloudflare.QUEUE_JOBS']; end |
#kv ⇒ Object
374 |
# File 'lib/homura/runtime/queue.rb', line 374 def kv; env['cloudflare.KV']; end |
#send_email ⇒ Object
377 |
# File 'lib/homura/runtime/queue.rb', line 377 def send_email; env['cloudflare.SEND_EMAIL']; end |
#wait_until(promise) ⇒ Object
Hand a long-running promise to ctx.waitUntil. Mirrors the same helper in Sinatra::Scheduled’s ScheduledContext.
385 386 387 388 389 390 |
# File 'lib/homura/runtime/queue.rb', line 385 def wait_until(promise) return promise if @js_ctx.nil? js_ctx = @js_ctx `#{js_ctx}.waitUntil(#{promise})` promise end |