批处理操作
Apollo Kotlin 支持在单个 HTTP 请求中批量执行多个操作,以减少网络往返次数。无论何时您启用批处理执行操作,您的客户端都会等待一个短暂的时间间隔以收集任何 其他 可批处理的操作,这些操作也被执行。当间隔结束时,您的客户端通过单个 HTTP 请求发送所有操作。
请注意,由于等待间隔,批处理会增加操作的延迟。需要尽可能少延迟的操作可以禁用批处理。
启用批处理
在初始化您的ApolloClient
实例时启用批处理,如下所示:
val apolloClient = ApolloClient.Builder().serverUrl("https://...").httpBatching().build()
默认情况下,批处理引擎等待10毫秒收集查询,然后发送它们,单个批次最多包含10个查询。您可以通过向 httpBatching
方法传递额外的配置选项来配置这些默认值:
.httpBatching(batchIntervalMillis = 50, // Wait 50msmaxBatchSize = 20 // Max 20 queries)
选择退出/进入
默认情况下,如果您 启用批处理,则对所有操作启用。单个操作可以通过将 false
传递给 canBeBatched
方法退出批处理:
apolloClient.query(MyQuery()).canBeBatched(false).execute()
如果存在某个特定的 操作,您希望其尽可能降低延迟,这将非常有用。
您还可以要求单个 操作 加入批处理。要这么做,您首先在初始化您的 ApolloClient
实例时调用 canBeBatched(false)
。
val apolloClient = ApolloClient.Builder().serverUrl("https://...").httpBatching().canBeBatched(false).build()
现在,批处理默认是 禁用 的,单个 操作 可以通过 canBeBatched(true)
加入批处理。