2012-11-09 28 views
0

我的用戶可以保存他們的首選搜索。現在我需要給他們訂閱它們的可能性,以便在新的搜索結果可用時收到電子郵件通知(例如雅虎回答)。Rails簡單通訊/郵件列表通過電子郵件通知新的搜索結果

我已經設置了一個梅勒,當手動觸發,工作正常。

現在我需要做的就是從預定作業調用郵件程序,但是......我真的不是該領域的專家。所以,在Whenever,Delayed_job,Sidekiq,Resque Scheduler& co。哪一個(或哪幾個組合)我應該去參加這種類型的任務(長時間運行多個郵件的過程)?

編輯

我公司開發的工作示例應用程序,可在Github上:NotiSearch

這是非常有據可查的文件,所以如果你正在嘗試開發類似的東西,我一定會推薦你去看看它。

PS:我選擇依靠每當delayed_job的,因爲他們沒有外部依賴性,如果需要的話,應該是很容易過渡到一個更加靈活的解決方案。

回答

2

我曾親自與Resque和Sidekiq合作過。這兩者之間的主要區別在於,Sidekiq爲每項工作產生了新線索。

Resque每個作業都有一個進程。這基本上意味着Resque會承擔失敗,如果一個流程失敗,其他任務不會失敗。 Sidekiq,因爲它與線程一起工作,如果其中一個線程因任何原因而被鎖定,整個進程將被鎖定。

從另一個QA答案Resque vs Sidekiq?

Resque:

優點:

不需要線程安全(幾乎所有的寶石在那裏工作); 沒有解釋器偏好(您可以使用任何紅寶石); 負載的插件。 缺點

每個工人運行一個進程(使用更多的內存); 不會重試作業(反正是開箱即用)。 Sidekiq:

優點

每個工人

運行線程(使用少得多的存儲器); 分叉更少(工作更快); 更多開箱即用選項。 缺點

[巨大]需要線程安全的代碼和所有的依賴。如果你使用線程運行線程不安全的代碼,那麼你就會遇到麻煩; 少得多的插件(目前只有2個); 適用於某些紅寶石比其他紅寶石更好(建議使用jruby和rubinius,由於GVL(全局VM鎖定),MRI的效率會降低)。

編輯

反正回答你的問題。在我們使用郵件程序的所有項目中,我們都使用了Resque。

+0

您在[NotiSearch](https://github.com/duccioarmenise/NotiSearch)致謝:-) – Darme

+0

太棒了!謝謝,我會檢查出來的! –

0

嘗試MailyHerald - 郵件管理gem for rails。只有滿足特定條件時,您才能設置發送給用戶的定期郵件 - 即新的搜索結果可用。

MailyHerald在後臺自動處理所有郵件(使用Sidekiq)併爲管理目的提供了很好的web-ui。