Class: ActiveJob::QueueAdapters::PostburnerAdapter
- Inherits:
-
Object
- Object
- ActiveJob::QueueAdapters::PostburnerAdapter
- Defined in:
- lib/postburner/active_job/adapter.rb
Overview
Do NOT set ‘config.active_job.queue_name_prefix` - Postburner handles prefixing automatically via #expand_tube_name.
Postburner adapter for ActiveJob.
Provides dual-mode job execution:
-
**Default mode**: Fast execution via Beanstalkd only
-
**Tracked mode** (opt-in): Full PostgreSQL audit trail
## Queue Name Prefixing
Postburner automatically prefixes all queue names with ‘postburner.env.` to create Beanstalkd tube names. This means:
-
‘queue_as :default` → tube `postburner.production.default`
-
‘queue_as :mailers` → tube `postburner.production.mailers`
The same base queue names are used across:
-
ActiveJob: ‘queue_as :default`
-
Postburner::Job: ‘queue ’default’‘
-
config/postburner.yml: ‘queues: [default]`
All refer to the same Beanstalkd tube after prefixing.
## Usage
Instance Method Summary collapse
-
#enqueue(job) ⇒ void
Enqueues a job for immediate execution.
-
#enqueue_after_transaction_commit? ⇒ Boolean
Indicates whether the adapter supports enqueuing after transaction commit.
-
#enqueue_at(job, timestamp) ⇒ void
Enqueues a job for execution at a specific time.
Instance Method Details
#enqueue(job) ⇒ void
This method returns an undefined value.
Enqueues a job for immediate execution.
62 63 64 |
# File 'lib/postburner/active_job/adapter.rb', line 62 def enqueue(job) enqueue_at(job, nil) end |
#enqueue_after_transaction_commit? ⇒ Boolean
Indicates whether the adapter supports enqueuing after transaction commit.
Returns true because Postburner uses Beanstalkd (external queue), which means jobs are safely enqueued outside the database transaction. This allows Rails to automatically defer job enqueuing until after the current database transaction commits.
90 91 92 |
# File 'lib/postburner/active_job/adapter.rb', line 90 def enqueue_after_transaction_commit? true end |
#enqueue_at(job, timestamp) ⇒ void
This method returns an undefined value.
Enqueues a job for execution at a specific time.
73 74 75 76 77 78 79 |
# File 'lib/postburner/active_job/adapter.rb', line 73 def enqueue_at(job, ) if tracked?(job) enqueue_tracked(job, ) else enqueue_default(job, ) end end |