25 lines
843 B
Ruby
25 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
|