【发布时间】:2013-01-10 22:14:52
【问题描述】:
我在使用 ActionMailer 实施延迟作业时遇到问题: 在延迟作业实施之前:
class NotificationsMailer < ActionMailer::Base
default :from => "noreply@mycompany.com"
default :to => "info@mycompany.com"
def new_message(message)
@message = message
mail(:subject => "[Company Notification] #{message.subject}")
end
end
并使用这条线调用它(它工作得非常好):
NotificationsMailer.new_message(@message).deliver
在延迟作业实施之后,我所做的只是将交付线更改为:
NotificationsMailer.delay.new_message(@message)
此外,我使用
启动了作业队列rake jobs:work
如果作业关闭,我可以看到数据库中的对象,并且我可以看到它们在我启动工作程序后弹出,但没有任何反应(未发送电子邮件)。
更新 - 其他延迟任务(与邮件无关)工作正常。
任何人都可以帮助新手吗?
提前致谢!!
【问题讨论】:
-
你在工作开发环境吗?查看配置,也许 action_mailer 设置为 false,
config.action_mailer.perform_deliveries = false -
这不是问题,因为它设置为 true。谢谢!
标签: ruby-on-rails actionmailer delayed-job