GraphQL#execute是否在同一线程上运行所有数据获取程序?异步行为是否委托给DataFetcher实现?

GraphQL#execute是否在同一线程上运行所有数据获取程序?异步行为是否委托给DataFetcher实现?,graphql,graphql-java,Graphql,Graphql Java,如果我的所有数据获取程序都直接返回POJO而不是CompletableFuture,那么整个GraphQL执行是否会发生在同一个线程上?是。根据我从源代码中看到的情况,如果所有数据获取程序只返回POJO,那么整个执行将在同一个线程上执行 要将数据获取程序配置为并行运行,必须使用支持异步处理的ExecutionStrategy。查询(AsyncExecutionStrategy)使用的默认值支持,而变异(AsyncSerialExecutionStrategy)不支持 数据获取程序还必须使用Com

如果我的所有数据获取程序都直接返回POJO而不是CompletableFuture,那么整个GraphQL执行是否会发生在同一个线程上?

是。根据我从源代码中看到的情况,如果所有数据获取程序只返回POJO,那么整个执行将在同一个线程上执行

要将数据获取程序配置为并行运行,必须使用支持异步处理的
ExecutionStrategy
。查询(
AsyncExecutionStrategy
)使用的默认值支持,而变异(
AsyncSerialExecutionStrategy
)不支持

数据获取程序还必须使用
CompletableFuture.supplyAsync()
返回一个
CompletableFuture
。请注意,
graphql java
提供了一个名为
asynchdatafetcher
的便捷数据获取程序,它可以将普通的同步数据获取程序包装为异步数据获取程序:

DataFetcher asyncDataFetcher = AsyncDataFetcher.async(fooDataFetcher);

谢谢你的回答。我在GraphQL Java的频谱聊天中问过这个问题,从官方开发人员那里得到了相同的答案:。发布链接,以便查看此链接的人对答案有更大的信心。