2011-05-26 34 views
0

應該使用某種背景作業(Resque,Delayed_Job等)在後臺處理/發送驗證電子郵件?應該在後臺處理驗證電子郵件嗎?

該應用程序確實有一個傾向,直到發送驗證電子郵件。但是,它只會持續一兩秒鐘。不知道它的價值是否作爲背景任務發送。

你的想法是什麼?

+0

我以前從來沒有任何需要做,因爲發送電子郵件時,我不會遇到太大的延遲。將其添加到後臺處理器沒有任何問題,因爲用戶不需要立即收到電子郵件。如果登記表上的延遲時間只有幾秒鐘,那麼這可能是矯枉過正的。當您禁用電子郵件時,您的表現如何? – Gazler 2011-05-26 21:23:53

+0

你是什麼意思,當我禁用電子郵件?你的意思是禁用發送驗證郵件?我們的應用程序還沒有btw,所以真正的統計數據,我真的不能說atm。我只是注意到,發送驗證電子郵件時,應用程序會暫停一兩秒鐘。 – 2011-05-26 21:33:18

回答

2

要記住的主要原因是,這個延遲不會影響當前用戶,它也影響其他用戶,因爲它支撐着Rails進程(確切的效果取決於Web服務器,重新使用和你的設置)。

如果這個應用程序沒有很多用戶(而且將來也不會),並且您目前沒有任何後臺作業處理,那麼可能不值得添加它。否則,這可能是一個好主意。

0

如果這是幾秒鐘,那麼我認爲你可以忍受它。但是,如果需要更長的時間,那麼您可能會將其移至delayed_job,除非您的delayed_job始終被阻塞,並且您對後臺作業太過分了。在這種情況下,將電子郵件發送給用戶可能需要更長的時間,並且可能會破壞用戶體驗。即使在這種情況下,您可以爲發送驗證電子郵件設置更高的優先級。

我毫不懷疑delayed_job的功能,並且已經親自使用了很長一段時間了。即使Github上建議它同時釋放resque:
https://github.com/blog/542-introducing-resque

We need a background job system as serious as our web framework. I highly recommend DelayedJob to anyone whose site is not 50% background work.