java多线程,线程池解决第三方接口调用问题

oscer_落叶随风 2016-07-13 03:44:38
我在做的一个项目用的是springMvc框架,用到了一个第三方接口(例如短信发送)。有调用次数限制(30秒内不能超过500次)。
想自己写一个接口控制次数,并且解决下面的问题:
困惑点1:调用接口比较耗时,所以想调用我的接口后直接返回,后台继续执行调用第三方接口。(解决办法应该是用多线程)
困惑点2:因为是web项目,多用户同事访问。为了解决困惑1,使用多线程的话,我不知道怎么统计访问次数。(因为所有的用户访问次数要算在一起不能超过第三发接口的次数限制)
困难点1:网上可能有很多现成的中间件(activemq)之类的。我们领导不想用。因为现在项目比较小,不想加入过多的中间件。
困难点2:不想在这个接口有数据库的访问。可以使用缓存(memcache).
困难点3:不想用轮询这类耗资源的服务,因为这并不是一个特别频繁的。是不是可以用时启动,不用了它过一定时间自己关闭。

我在网上浏览学习了一阵了,没有什么实质性进展,碍于本人能力有限,只能求助于各位了。希望有经验的可以给我帮助。有代码的可以给我贴点代码,或者把关键的技术告诉我,我自己学也行。表述不明的请各位留言。每天都在线。

感觉努力方向在多线程和线程池上。。。。
...全文
2847 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
街头小贩 2016-07-18
  • 打赏
  • 举报
回复
我觉得不用多线程也可以作到,你用内存缓存一下一个时间段的发送短信请求,然后用第三方接口批量发送,像java的xxxBuffer结构
街头小贩 2016-07-18
  • 打赏
  • 举报
回复
你的请求代理多线程了,但你请求的第三方就一个地址,也就是说有多个请求同时到达,也只有一个请求可以与第三方通信,其它的请求要阻塞是吧? 如果是这样的话: 用队列+(生产者和消费者)就可以。
街头小贩 2016-07-18
  • 打赏
  • 举报
回复
你要作的就是一个第三方的代理(请求到你的代理,在后台由你转发请求到第三方)是吧。并统计调用次数 这个不能多线程也可以吧! 我的理解是多线程干一个(非多线程干这个需要很长时间或同时接收大量请求并作繁重)的工作。你的需求和我理解的不搭呀
slwsss 2016-07-13
  • 打赏
  • 举报
回复
写个发送接口的统一调用 发送次数记录在缓存里

10,612

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧