kiseki98
kiseki98
2021-06-12 02:04
采纳率: 100%
浏览 15
已采纳

定时任务多线程发送邮件问题

现在有个需求,通过定时任务发送邮件,一次定时任务大概是1000-2000个邮件需要发送,需要发送的邮件事先在一个日志表内生成了相关记录,现在定时任务使用线程池发送邮件,怎么样保证当前定时任务未执行完,下次定时任务指定仍能保证线程安全呢?不使用Redis的情况有什么解决方案吗?请求大神能给个方案呀!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • weixin_43626948
    得一以生 2021-06-15 10:11
    已采纳

    日志表加一个状态,待处理0,处理失败-1,处理中1,完成2,每次定时任务执行的时候只扫描0和-1的,获取2000条数据,并将这2000条数据的状态改为1,提交数据库事务,然后另起一个事务去发送邮件,然后将发送完成的数据状态改为2,发送失败的状态改为-1(改状态操作最好放到tra-catch-finally里的finally块里)。

    点赞 评论

相关推荐