现在我有这样一个场景:我根据邮箱的用户名和密码获取到用户收件箱里邮件的list集合的同时将这些邮件放入垃圾箱(以免下次重读),然后用for循环将这些邮件加入数据库。这里面临的问题有
假设我的list里有20条邮件,在添加第10条时发生了错误导致程序终止,但我在拿邮件的时候我就已经将邮件移进了垃圾箱,这些未成功存入数据库的邮件就丢失了,这里我要怎么控制啊?
顺便问一下 javamail怎么将邮件从收件箱移入垃圾箱。
这种只能尽量控制吧,不能完全杜绝。
如果出现错误之后,捕获异常,然后落库一个任务,然后用定时任务扫描这些任务并再次执行。
不要for循环写入数据,批量写入数据后再做删除或标记处理,保持一个事务。将邮件移入垃圾箱倒是没听过,可能你得换策略,比如按时间和标题来判断