lib/sidekiq/extensions/action_mailer.rb in sidekiq-2.3.3 vs lib/sidekiq/extensions/action_mailer.rb in sidekiq-2.4.0

- old
+ new

@@ -14,19 +14,22 @@ # than 30 seconds to send. sidekiq_options :timeout => 30 def perform(yml) (target, method_name, args) = YAML.load(yml) - target.send(method_name, *args).deliver + msg = target.send(method_name, *args) + # The email method can return nil, which causes ActionMailer to return + # an undeliverable empty message. + msg.deliver if msg && msg.to && msg.from end end module ActionMailer - def delay - Proxy.new(DelayedMailer, self) + def delay(options={}) + Proxy.new(DelayedMailer, self, options) end - def delay_for(interval) - Proxy.new(DelayedMailer, self, Time.now.to_f + interval.to_f) + def delay_for(interval, options={}) + Proxy.new(DelayedMailer, self, options.merge('at' => Time.now.to_f + interval.to_f)) end end end end