在我的Rails應用程序中,用戶可以訂閱一些事件。我想在活動開始前24小時向用戶發送郵件。在Rails應用程序中發送自動郵件
我不知道如何實現。一個耙子任務?是否有一些寶石或一些最佳實踐要遵循?
謝謝!
編輯:
我想,我的cron必須每分鐘運行一次,以獲取每個啓動24小時的事件。但是如果cron停止,或者需要一分多鐘,我不能跳過一些電子郵件。換句話說,我怎麼能確定我沒有兩次發送同一封電子郵件?
在我的Rails應用程序中,用戶可以訂閱一些事件。我想在活動開始前24小時向用戶發送郵件。在Rails應用程序中發送自動郵件
我不知道如何實現。一個耙子任務?是否有一些寶石或一些最佳實踐要遵循?
謝謝!
編輯:
我想,我的cron必須每分鐘運行一次,以獲取每個啓動24小時的事件。但是如果cron停止,或者需要一分多鐘,我不能跳過一些電子郵件。換句話說,我怎麼能確定我沒有兩次發送同一封電子郵件?
退房:
http://railscasts.com/episodes/206-action-mailer-in-rails-3
用於發送郵件和
http://railscasts.com/episodes/164-cron-in-ruby-revised
使用每當建立一個cron打電話給你的郵件
編輯:剛纔看到你評論。在這種情況下,我想看看使用類似resque調度或sidekiq等價的:
https://github.com/bvandenbos/resque-scheduler
那麼你可以做這樣的事情:
Resque.enqueue_at(24.hours.from_now, SendFollowUpEmail, :user_id => current_user.id)
sidekiq例如:
FollowUpEmailer.perform_in(24.hours.from_now, current_user.id)
我已經使用sidekiq。事實上,我並不需要cron。我只需要在after_create中添加你的線,對吧?!如果用戶取消訂閱活動,是否有取消電子郵件的方法? – 2013-02-19 21:32:00
我不認爲有一種方法見:https://github.com/mperham/sidekiq/pull/257,最後的評論有邁克說,你的工作應該檢查,看它是否應該被髮送。在這種情況下,我只需要:send_email如果user.subscribed?在我的工作 – rainkinz 2013-02-19 21:36:35
應該很容易實現。非常感謝!唯一的缺點我看到的是,如果我的服務器崩潰或重新啓動,我失去了我的sidekiq隊列中的所有郵件... – 2013-02-19 21:41:17
https://github.com/mperham/sidekiq/pull/257
這將幫助您在預定的時間內解決自動郵件系統!
你沒有嘗試將你的一些單詞輸入到谷歌中,是嗎? – pduersteler 2013-02-19 21:19:52
可能的重複[一個cron作業的rails:最佳實踐?](http://stackoverflow.com/questions/285717/a-cron-job-for-rails-best-practices) – pduersteler 2013-02-19 21:20:16
當然,我做了,但它不是同一個問題。請在downvoted之前嘗試理解!也許我必須澄清我的問題。這不是一個簡單的cron。我的cron必須每分鐘運行一次,以獲得24小時內開始的每個活動。但是,如果cron的停止,或需要超過一分鐘,我不能跳過一些電子郵件。換句話說,我怎麼能確定我沒有兩次發送同一封電子郵件? – 2013-02-19 21:26:27