class ActiveJob::QueueAdapters::SqsAdapter::Params

build request parameter of Aws::SQS::Client

def assured_delay_seconds(timestamp)

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

def deduplication_body

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

def default_entry

def default_entry
  {
    message_body: Aws::Json.dump(@body),
    message_attributes: message_attributes
  }
end

def entry

def entry
  if Aws::Rails::SqsActiveJob.fifo?(queue_url)
    default_entry.merge(options_for_fifo)
  else
    default_entry
  end
end

def initialize(job, body)

def initialize(job, body)
  @job = job
  @body = body || job.serialize
end

def message_attributes

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

def options_for_fifo

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

def queue_url

def queue_url
  @queue_url ||= Aws::Rails::SqsActiveJob.config.queue_url_for(@job.queue_name)
end