mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
24 lines
843 B
Ruby
24 lines
843 B
Ruby
# frozen_string_literal: true
|
|
|
|
# A newly received `InboundEmail` will not be routed synchronously as part of ingress controller's receival.
|
|
# Instead, the routing will be done asynchronously, using a `RoutingJob`, to ensure maximum parallel capacity.
|
|
#
|
|
# By default, all newly created `InboundEmail` records that have the status of `pending`, which is the default,
|
|
# will be scheduled for automatic, deferred routing.
|
|
module ActionMailbox::InboundEmail::Routable
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
after_create_commit :route_later, if: :pending?
|
|
end
|
|
|
|
# Enqueue a `RoutingJob` for this `InboundEmail`.
|
|
def route_later
|
|
ActionMailbox::RoutingJob.perform_later self
|
|
end
|
|
|
|
# Route this `InboundEmail` using the routing rules declared on the `ApplicationMailbox`.
|
|
def route
|
|
ApplicationMailbox.route self
|
|
end
|
|
end
|