我有一個webapp運行在我的服務器上,它有一些餘額更新。一旦平衡更新,我需要檢查,如果平衡低於5000的情況下,平衡低於5000,我應該發送警報電子郵件。這裏要注意的一點是,我需要在一天內只發送一次一次,每次餘額低於5000時警報不應該繼續。 我相信,我應該使用單身模式發送郵件,但是我不知道如何使用這個。 程序當看到餘額低於5000時,應調用具有發送電子郵件警報功能的單例類,但是如何確保程序在餘額下降時不會再次調用該函數? 任何人都可以指導我嗎?使用Singleton模式的電子郵件
0
A
回答
0
你還需要考慮兩個獨立的東西:
- 電子郵件發送服務。
多種方法來實現它。是的,它可能是Singleton,但它也可能是普通的Java服務。如果你使用Spring,那麼他們有非常簡單和有用的預定義實現。這是一個example。
- 你的支票餘額邏輯。
取決於你真正需要的。如果您需要檢查每一個資產負債更新,但發送警報不多於每天一次,那麼這將是這樣的:
private Date lastAlertDate;
private static final BALANCE_LIMIT = 5000;
private void handleBalanceUpdated(long balance) {
if (balance < 5000) {
log.info("Balance has gone below {}", BALANCE_LIMIT);
int daysDifference = getDifferenceInDays(lastAlertDate, new Date());
if (daysDifference >= 1) {
log.info("Last alert was {} days ago, going to send email alert", daysDifference);
alertService.sendSimpleAlert("Balance has gone below " + BALANCE_LIMIT + "!");
lastAlertDate = new Date();
}
}
}
0
Singleton是一種設計模式,確保只創建一個對象的一個實例。
不聽起來像它有什麼關係,你需要什麼,你可以在你的數據庫中添加一個標誌像alert_sent=true/false
並相應地更新它。
0
1
singleton pattern是限制一個類的實例化到一個對象的設計模式。當需要確切的一個對象來協調整個系統的操作時,這非常有用。
但對於您的要求,我不知道可以它將幫助。也許你可以使用一些國旗的概念。國旗應該每天清除。
0
您不需要任何「特殊」設計模式。例如,你可以存儲在最後一封電子郵件,通知發送,例如日期:
Date lastEmail = ... // last email date
,並試圖發送電子郵件時chekc條件:
If(...) // lastEmail is before current day
{ //send emal and update lastEmail }
相關問題
- 1. ASP.NET電子郵件模式
- 2. 模板電子郵件的最佳電子郵件方式
- 3. 使preg_split電子郵件模式
- 4. .NET C#電子郵件:使用電子郵件模板
- 5. 使用XSLT的電子郵件模板
- 6. Salesforce的 - 電子郵件模板使用
- 7. Bootstrap模式電子郵件形式
- 8. 電子郵件模式的說明
- 9. 對電子郵件使用lodash ._模板
- 10. Razor將電子郵件模板作爲電子郵件模板
- 11. Mailchimp像電子郵件模板個人電子郵件/交易電子郵件
- 12. Facebook電子郵件訂閱模式
- 13. 頁面/電子郵件內容模式
- 14. 響應式電子郵件模板
- 15. 電子郵件輸入模式屬性
- 16. 使用PHP_XLSXWriter向電子郵件格式化的數據發送電子郵件
- 17. 使用PHP,html格式的電子郵件確認電子郵件
- 18. VBA驗證使用模式的電子郵件列表
- 19. 建議使用javaScript驗證電子郵件的良好模式?
- 20. 使用send_dbmail發送電子郵件表中的電子郵件
- 21. 使用sha256計算電子郵件散列的電子郵件
- 22. 添加電子郵件的模板與電子郵件js
- 23. 使用電子郵件模板在SuiteScript 1.0中發送電子郵件?
- 24. 如何使用自定義電子郵件模板發送電子郵件
- 25. PHP的形式不電子郵件發送電子郵件
- 26. 使用Powershell查找模式併發送電子郵件
- 27. 使用twitter-bootstrap模式,json和wordpress發送電子郵件
- 28. 電子郵件使用C#
- 29. 電子郵件::使用UTF8
- 30. 使用電子郵件
請嘗試使用的東西下面的答案,如果你面對任何問題,試圖得到幫助... ... – sunleo