默认为1秒超时。
服务端和消费端都可以设置超时时间。优先级是消费端大于服务端
服务提供方,接口休眠2秒,如果消费端调用,报接口超时,从错误日志可以看到开始时间结束时间相差一秒
@Component
@Service(interfaceClass = IUserService.class)
public class UserServiceImpl implements IUserService{
@Override
public String sayHello(String name) throws InterruptedException {
Thread.sleep(2000);
System.out.println("处理结束,返回");
return "hello:"+name;
}
}
修改消费端,设置超时时间为3秒,可正常调用。
@RestController
@RequestMapping("/user")
public class UserController {
@Reference(timeout = 3000)
private IUserService userService;
@RequestMapping("/sayHello")
public String sayHello(String name) throws InterruptedException {
long l = System.currentTimeMillis();
String s = userService.sayHello(name);
System.out.println("耗时:"+(System.currentTimeMillis()-l));
return s;
}
}
修改服务提供方超时时间为1.5秒,消费端正常调用
@Component
@Service(interfaceClass = IUserService.class,timeout = 1500)
public class UserServiceImpl implements IUserService{
@Override
public String sayHello(String name) throws InterruptedException {
Thread.sleep(2000);
System.out.println("处理结束,返回");
return "hello:"+name;
}
}