Sha256: d7dd49154aba539423facfa01efa8356cc621cdc7c5b42e8a8cfe508e9b50340
Contents?: true
Size: 937 Bytes
Versions: 1
Compression:
Stored size: 937 Bytes
Contents
# frozen_string_literal: true require 'aws-sdk-sqs' require 'concurrent' module ActiveJob module QueueAdapters # == Async adapter for Amazon SQS ActiveJob # # This adapter queues jobs asynchronously (ie non-blocking). Error handler can be configured # with +Aws::Rails::SqsActiveJob.config.async_queue_error_handler+. # # To use this adapter, set up as: # # config.active_job.queue_adapter = :amazon_sqs_async class AmazonSqsAsyncAdapter < AmazonSqsAdapter private def _enqueue(job, send_message_opts = {}) Concurrent::Promise .execute { super(job, send_message_opts) } .on_error do |e| Rails.logger.error "Failed to queue job #{job}. Reason: #{e}" error_handler = Aws::Rails::SqsActiveJob.config.async_queue_error_handler error_handler.call(e, job, send_message_opts) if error_handler end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aws-sdk-rails-3.4.0 | lib/active_job/queue_adapters/amazon_sqs_async_adapter.rb |