Class: ActiveJob::QueueAdapters::ActiveElasticJobAdapter
- Inherits:
-
Object
- Object
- ActiveJob::QueueAdapters::ActiveElasticJobAdapter
- Defined in:
- lib/active_job/queue_adapters/active_elastic_job_adapter.rb
Overview
Active Elastic Job adapter for Active Job
Active Elastic Job provides (1) an adapter (this class) for Rails’ Active Job framework and (2) a Rack middleware to process job requests, which are sent by the SQS daemon running in Amazon Elastic Beanstalk worker environments.
This adapter serializes job objects and sends them as a message to an Amazon SQS queue specified by the job’s queue name, see ActiveJob::Base.queue_as
To use Active Elastic Job, set the queue_adapter config to :active_elastic_job.
Rails.application.config.active_job.queue_adapter = :active_elastic_job
Defined Under Namespace
Classes: Error, NonExistentQueue, SerializedJobTooBig
Constant Summary collapse
- MAX_MESSAGE_SIZE =
(256 * 1024)
Class Method Summary collapse
-
.enqueue(job) ⇒ Object
:nodoc:.
-
.enqueue_at(job, timestamp) ⇒ Object
:nodoc:.
Class Method Details
.enqueue(job) ⇒ Object
:nodoc:
61 62 63 |
# File 'lib/active_job/queue_adapters/active_elastic_job_adapter.rb', line 61 def enqueue(job) #:nodoc: enqueue_at(job, Time.now) end |
.enqueue_at(job, timestamp) ⇒ Object
:nodoc:
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/active_job/queue_adapters/active_elastic_job_adapter.rb', line 65 def enqueue_at(job, ) #:nodoc: queue_url = nil begin resp = aws_sqs_client.get_queue_url(queue_name: job.queue_name.to_s) queue_url = resp.queue_url rescue Aws::SQS::Errors::NonExistentQueue => e raise NonExistentQueue, job end serialized_job = JSON.dump(job.serialize) check_job_size!(serialized_job) aws_sqs_client.( queue_url: queue_url, message_body: serialized_job, delay_seconds: calculate_delay(), message_attributes: { "message_digest" => { string_value: (serialized_job), data_type: "String" } } ) end |