class ActiveJob::QueueAdapters::SqsAdapter::Params
build request parameter of Aws::SQS::Client¶ ↑
Public Class Methods
assured_delay_seconds(timestamp)
click to toggle source
# File lib/active_job/queue_adapters/sqs_adapter/params.rb, line 9 def assured_delay_seconds(timestamp) delay = (timestamp - Time.now.to_f).floor delay = 0 if delay.negative? raise ArgumentError, 'Unable to queue a job with a delay great than 15 minutes' if delay > 15.minutes delay end
new(job, body)
click to toggle source
# File lib/active_job/queue_adapters/sqs_adapter/params.rb, line 18 def initialize(job, body) @job = job @body = body || job.serialize end
Public Instance Methods
entry()
click to toggle source
# File lib/active_job/queue_adapters/sqs_adapter/params.rb, line 27 def entry if Aws::Rails::SqsActiveJob.fifo?(queue_url) default_entry.merge(options_for_fifo) else default_entry end end
queue_url()
click to toggle source
# File lib/active_job/queue_adapters/sqs_adapter/params.rb, line 23 def queue_url @queue_url ||= Aws::Rails::SqsActiveJob.config.queue_url_for(@job.queue_name) end
Private Instance Methods
deduplication_body()
click to toggle source
# File lib/active_job/queue_adapters/sqs_adapter/params.rb, line 69 def deduplication_body ex_dedup_keys = @job.excluded_deduplication_keys if @job.respond_to?(:excluded_deduplication_keys) ex_dedup_keys ||= Aws::Rails::SqsActiveJob.config.excluded_deduplication_keys @body.except(*ex_dedup_keys) end
default_entry()
click to toggle source
# File lib/active_job/queue_adapters/sqs_adapter/params.rb, line 37 def default_entry { message_body: Aws::Json.dump(@body), message_attributes: message_attributes } end
message_attributes()
click to toggle source
# File lib/active_job/queue_adapters/sqs_adapter/params.rb, line 44 def message_attributes { '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
options_for_fifo()
click to toggle source
# File lib/active_job/queue_adapters/sqs_adapter/params.rb, line 57 def options_for_fifo options = {} options[:message_deduplication_id] = Digest::SHA256.hexdigest(Aws::Json.dump(deduplication_body)) message_group_id = @job.message_group_id if @job.respond_to?(:message_group_id) message_group_id ||= Aws::Rails::SqsActiveJob.config.message_group_id options[:message_group_id] = message_group_id options end