rest_rpc新增异步客户端接口

rest_rpc新增了异步客户端接口,其设计的目的是为了简化异步接口的使用,还消除异步接口的使用限制条件。我们先来看看异步客户端是如何使用的。

一个可以运行的简单示例在这里。简而言之,async_client和call返回的task都是线程安全的。task的类型是根据用户定义的强类型协议来决定的,并且task接口是参照std::future来设计的,接口简单。

由于异步客户端的call接口立即返回的特性,用户极有可能在task.get()返回前再次调用call函数。所以rest_rpc的异步客户端的内部使用了一个链表来管理用户使用call函数的调用,保证request-response顺序的正确性。异步客户端除了有取消接口之外,还实现了超时。便于debug,超时时间目前都设置的是60s.配置task和链接超时的接口应该不久就会实现。

发表评论