• 9.1.3. 异步调用

    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);