class ActiveJob::QueueAdapters::AmazonSqsAdapter
def _enqueue(job, send_message_opts = {})
def _enqueue(job, send_message_opts = {}) body = job.serialize queue_url = Aws::Rails::SqsActiveJob.config.queue_url_for(job.queue_name) send_message_opts[:queue_url] = queue_url send_message_opts[:message_body] = Aws::Json.dump(body) send_message_opts[:message_attributes] = message_attributes(job) Aws::Rails::SqsActiveJob.config.client.send_message(send_message_opts) end
def enqueue(job)
def enqueue(job) _enqueue(job) end
def enqueue_at(job, timestamp)
def enqueue_at(job, timestamp) delay = (timestamp - Time.now.to_f).floor raise ArgumentError, 'Unable to queue a job with a delay great than 15 minutes' if delay > 15.minutes _enqueue(job, delay_seconds: delay) end
def message_attributes(job)
def message_attributes(job) { 'aws_sqs_active_job_class' => { string_value: job.class.to_s, data_type: 'String' }, 'aws_sqs_active_job_version' => { string_value: Aws::Rails::VERSION, data_type: 'String' } } end