目前会遇到这样的问题,feign 配置了一个合适的超时时间,请求到某个服务中因为业务处理时间耗时较多(服务器压力大的情况)导致了feign直接响应给客户端超时,业务最终成功执行。
目前处理的策略就是 1. 调大了超时时间;2. 客户端得到超时的信息后会提示用户稍后刷新一下看结果。
大家是怎么处理这种情况的?
目前会遇到这样的问题,feign 配置了一个合适的超时时间,请求到某个服务中因为业务处理时间耗时较多(服务器压力大的情况)导致了feign直接响应给客户端超时,业务最终成功执行。
目前处理的策略就是 1. 调大了超时时间;2. 客户端得到超时的信息后会提示用户稍后刷新一下看结果。
大家是怎么处理这种情况的?
耗时操作不建议实时返回处理结果,加入中间状态不好么
这得看调用方对业务执行结果关心不关心。 如果关心, 超时的话 , 可以采用查询或者通知 进行状态一致处理。如果不关心执行结果, 那超时, 就超时了。 不用处理
不知道用socket行不行
这种情况要么优化 业务处理,要么直接告诉前端已经接受任务然后异步执行任务
可以异步的话优先异步
你说的两种方案都是可行的,要看具体业务。总之要达到最终一致性。
另外如果可以实现幂等性,客户端可以重新调用接口。如果不好实现,可以要求服务器成功后回调客户端,如果一次回调不行,那就多次。微信支付回调不就是这种场景么。