【发布时间】:2011-11-14 02:46:30
【问题描述】:
我正在尝试使用 Delayed_job 从我的 rails 3.1 应用程序异步发送邮件。
我按照 github 页面上的说明进行操作,但没有发送我的邮件(在我尝试使用此 gem 之前它们已发送)。我看到它们被放在工作表上,并且正在被消耗,但是 bundle exec rake jobs:work -v 任务没有给出任何输出。
这是我控制器中的代码:
Notifier.delay.project_deleted(@project, current_user, u.email )
以及我邮件中的代码
def project_deleted(project, admin, destination)
@project = project
@admin = admin
mail to: destination
end
编辑:如果重要的话,我也在 windows 和 sqlite3 db 上执行此操作。
EDIT2:另外,有些奇怪:如果我添加 .deliver,我知道我不应该添加,任务将被执行并发送邮件;尽管如此,控制器还是这样回应:` undefined method deliver' for #
【问题讨论】:
-
可以交互模式启动delayed_job worker吗?
-
运行 'bundle exec rake jobs:clear',然后按照手册 (github.com/tobi/delayed_job) 中的说明创建 script/job_runner 脚本,然后从控制台运行它。
-
同时运行 'bundle exec rake jobs:work --trace'。
-
如何运行 job_runner 脚本?我用 --trace 尝试了 rake 任务,但没有给出新的输出(除了环境的加载)
-
另外,有些奇怪:如果我添加
.deliver,我知道我不应该添加,任务将被执行并发送邮件;尽管如此,控制器还是这样回应:` undefined methoddeliver' for #<Delayed::Backend::ActiveRecord::Job:0xb42c394>
标签: ruby-on-rails ruby-on-rails-3 actionmailer delayed-job