Heroku Delayed_Job在运行rufus_scheduler时触发两次

时间:2012-05-02 06:24:53

标签: ruby-on-rails-3 heroku delayed-job rufus-scheduler

我意识到这个标题是满口的......

我的应用目前设置为每天在帐户上有活动时向所有用户发送电子邮件。要实现这一点,我通过rufus_scheduler运行一个cron任务,并使用delayed_job延迟电子邮件传递,如下所示:

scheduler.cron("0 12 * * *") do
  User.all.each do |user|
    Newideas.delay.newideas_email(user)
  end
end

不幸的是,使用这种组合( rufus_scheduler& delayed_job )会导致在Heroku上部署时向每个用户发送两次电子邮件。

我试图在开发中复制它,但我一直无法做到。此外,当我使用控制器方法触发delayed_job时,即当有人创建新帐户等时,不会发生此问题。

任何帮助整理这个将非常感谢。

非常感谢。

2 个答案:

答案 0 :(得分:1)

为什么不使用Heroku调度程序并通过它调用它?它产生了一个单独的过程,所以那里也没有必要使用delayed_job ...简化:)

答案 1 :(得分:0)

可能原因很简单,您在scheduler.cron中致电config/initializer/what_ever 文件,因此调度程序在rails进程 AND 和delayed_job进程中运行?

This可能是这个问题的简单答案。