2015-06-21 35 views
1

我正在開發一個node.js應用程序。在我的應用程序中,我需要向滿足特定條件的用戶發送電子郵件和短信。我使用Gmail SMTP進行電子郵件和第三方供應商進行SMS。我假設在循環中解僱電子郵件和短信服務的API是危險的。什麼是正確的方法呢?NodeJS中的電子郵件和短信隊列

+0

爲什麼你認爲,這是危險的? – Andrey

+0

我聽說過電子郵件和短信沒有被傳遞的恐怖故事。只是想在推入生產之前進行確認。 –

+0

這取決於很多事情,主要觀點 - 您正在使用哪種服務。現在不可能回答你的問題。 – Andrey

回答

1

花費的時間顯然與N成正比,N是您設置的大小。儘可能多的用戶,需要更長的時間。請記住,通過網絡的請求在任何情況下都不會被阻止。

無論如何,除非風險N爲數千或數百萬項,您可以在一個循環中完成並附加適當的回調來處理響應/錯誤。

否則,您可以使用nextTick發送電子郵件/短信並安排下一個元素的相同操作(有關更多詳細信息,請參閱nodejs文檔)。 通過這種方式,您可以將所有活動分散在事件循環的多次迭代中。

+0

我寫了一個提交數據的API。當這個事件發生時,電子郵件和短信都會發送給用戶。但是,API將在電子郵件和短信完整發送之前返回響應。電子郵件和短信只是確認電子郵件,不會使用戶處於風險之中。你認爲我仍然可以繼續這個實施嗎? –

+0

我猜你收到的響應對象是一個發出像'data'或'error'這樣的事件的對象,不是嗎?如果是這種情況,請在這些事件上附加一些監聽器,因爲您正在進入異步世界,那麼您可以自由進行這些操作,而不是阻止這些操作。 – skypjack

+0

我已經看到人們跟蹤發送的電子郵件和短信的狀態,並運行一個crone作業以確保通知已發送。據我所知,這會給服務器帶來額外的負擔。通過一百萬用戶來執行一項低劣的工作並不是一個笑話。這讓我感到困惑。 –