java 限制访问接口的频率?

有一个需求,就是查询本地系统的所有需要发送提醒的信息,然后,循环调用发送邮件接口给用户发送邮件。代码如下图所示:

clipboard.png

问题:这样循环发送邮件,导致调用发送邮件的接口频率过高,
请问怎么限制调用发送邮件接口的频率?
如果我在箭头处使用sleep 函数让当前线程停一下,这种做法是否合适?

阅读 7.1k
1 个回答

这个不好,以后频率调整了你还要改代码的。要不就做一个切面专门切你那个方法,走一个代理判断数量,超过直接拒绝,数量可以随便配置了,这是在你本地的jvm上。如果是一个集群的情况下,多个机器都提供你那个发送邮件的服务,可以加一个总的白名单。总体来说,就是一个简单的熔断机制。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题