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