2012-05-02 2 views
0

Я понимаю, что это название громоздко ...Heroku Delayed_Job стрельбы в два раза при запуске через rufus_scheduler

Мое приложение в настоящее время установки, чтобы отправить электронную почту всем пользователям каждый день, когда была деятельность по счету. Для достижения этой цели, я запускаю задачу с помощью rufus_scheduler, и задержки доставки электронной почты с помощью 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 с использованием метода контроллера, то есть когда кто-то создает новую учетную запись и т. Д.

Любая помощь при сортировке этого адреса была бы принята с благодарностью.

Большое спасибо.

ответ

1

Почему бы просто не использовать планировщик Heroku и назвать это через это? Это порождает отдельный процесс так, то нет необходимости использовать delayed_job там, а ... упрощать :)

+0

Я использовал задержанную работу внутри планировщика, потому что некоторые из задач занимают много времени, поэтому без delayed_job они выбрали время. Кроме того, я бы использовал планировщик Heroku, но когда мы впервые создали приложение, был доступен только Cron, который не работал достаточно часто, чтобы мы могли его использовать. Теперь я перехожу к планировщику Heroku, но чтобы понять, разрешает ли это проблема, для справки это также то, что рекомендовала поддержка Heroku. Благодаря! –

0

Может быть, причина этого заключается в том, просто, что вы называете scheduler.cron в config/initializer/what_ever файл и поэтому планировщик работает в процессе рельсов И и в процессе delayed_job?

This может быть простым ответом на этот вопрос.