java - 当互联网连接返回java时如何发送电子邮件?
问题描述
我正在做一个项目应该下载一些文件。如果互联网连接出现问题,它将被捕获异常。发生这种情况时,我应该向某些人发送电子邮件。
我需要发送电子邮件,但没有互联网连接,所以我有两个想法:
1-尝试发送电子邮件,但因为我没有连接,我需要保存电子邮件,直到连接返回并再次发送。
2-创建线程并检查连接是否稳定,如果互联网稳定,我将发送电子邮件。
我还有另一个想法是创建一个无限循环来检查互联网连接并发送电子邮件并在连接恢复时结束循环。
任何人都可以帮助吗?
解决方案
确实没有必要为稳定的互联网连接添加检查。只要继续尝试发送电子邮件,直到它成功。您的电子邮件通知线程的逻辑似乎非常简单:
long RETRY_DELAY = 60*1000;
boolean emailSent = false;
while(!emailSent ) {
emailSent = sendEmail();
if (!emailSent) {
Thread.sleep(RETRY_DELAY);
}
}
sendEmail()
如果发送电子邮件有任何问题,该方法应返回 false。例如与网络相关的异常。
您可以在其他对象中设置最终状态并添加最大重试次数,或继续重试的最大时间长度,直到您放弃等。这些只会添加更多条件来终止循环。如果有手动中止,您也可以中断该电子邮件线程。
推荐阅读
- dart - Flutter Firestore 离线持久化
- powershell - 如何在不删除目录本身的情况下删除目录中的内容?命令外壳或 Powershell
- ios - Firebase iOS 手机登录 - Recaptcha 无法在模拟器和设备上运行
- telerik - 将一种新类型的无序列表添加到 RAD 编辑器
- node.js - 如何读取使用 KoaJS 上传的文件?
- ruby-on-rails - Rails 4.1路由路径助手在路径生成中使用不正确的ID
- python - 如何在自己的文件夹中引用模块?
- python - 在for循环Python中查找前10个最大值
- ionic-framework - 上传图片文件而不是base 64
- python - 没有元数据的简单 Python xlsx 文件比较