0

我意识到这个标题是一个拗口...

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

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

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

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

任何帮助解决这个问题将不胜感激。

非常感谢。

4

2 回答 2

1

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

于 2012-05-02T09:30:51.807 回答
0

也许原因很简单,您调用scheduler.cron了一个config/initializer/what_ever 文件,因此调度程序在 rails 进程delay_job 进程中运行?

可能是对这个问题的简单回答。

于 2012-08-26T22:17:16.313 回答