9.1.3. 异步调用

远程过程调用也可以采用异步的方式执行。异步调用需要单独提交一个带有@RRemoteAsync注解(annotation)的异步接口类。异步接口方法签名必须与远程接口的方法签名相符。异步接口的返回类必须是org.redisson.api.RFuture对象或其子对象。在调用RRemoteService.get方法时将对异步接口的方法进行验证。异步接口无须包含所有的远程接口里的方法,只需要包含要求异步执行的方法即可。

  1. // 远程接口
  2. public interface RemoteInterface {
  3. Long someMethod1(Long param1, String param2);
  4. void someMethod2(MyObject param);
  5. MyObject someMethod3();
  6. }
  7. // 匹配远程接口的异步接口
  8. @RRemoteAsync(RemoteInterface.class)
  9. public interface RemoteInterfaceAsync {
  10. RFuture<Long> someMethod1(Long param1, String param2);
  11. RFuture<Void> someMethod2(MyObject param);
  12. }
  13. RRemoteService remoteService = redisson.getRemoteService();
  14. RemoteInterfaceAsync asyncService = remoteService.get(RemoteInterfaceAsync.class);