Controller中一个action里调用多个接口,是否要使用多线程。

最近有个领导提到一个问题,在action中要请求多个接口,然后将多个接口的数据返回到前端,针对单个接口可能存在问题的情况(比如某个接口的服务停了或者请求时间过长),是否应该在action中使用多线程来访问这些接口。请大家帮忙分析一下这种情况怎么处理比较好。

评论区

Romeo

2016-08-31 14:09

@IvyHelen 我现在都没有做多线程。。有接口错了的话就会报异常,然后再全局拦截器中catch到,返回一些内容给前端做处理。多线程的好处是啥,错误信息更准确咯?

Romeo

2016-08-31 15:45

JFinal

2016-08-31 16:07

如果用多线程,你的主线程还是得在那去等新开的线程处理完成,如果不是为了将多个任务分发给多线程处理来提升性能的话,没有必要使用多线程,当前 action 本身就是一个单独的线程
你们领导说的那种情况是系统不稳定造成的,这种情况,通常直接返回给客户端一个错误提示,让其重新刷新、操作就好了,系统不稳定是需要极力去解决的,不能让你的代码去解决这种不稳定,如果你的业务代码还要去关心这种事情,是不是也该关心一下系统硬件可能某个字节存储错误的事情?
不同的部分只该去关心自己核心要解决的问题,出错以后回滚事务,报告异常,提示到用户后续的操作足矣,谁出了错应该是去解决那个出错的地方

Romeo

2016-08-31 17:18

@JFinal 感谢波总详细解答,又学到新知识了。

热门反馈

扫码入社