Dapper:如何取消异步非缓冲查询?
Dapper: How to cancel an async non-buffered query?
使用 Dapper 的 SqlMapper.QueryAsync<T>
方法在 gRPC
API.
测试 API 客户端 dies/disconnects 时的场景,非缓冲查询在数据库上保持活动状态,直到完全执行,即使调用服务不再使用结果,这是在浪费宝贵的数据库资源。
查看 QueryAsync
代码,取消令牌(在 API 客户端 death/disconnect 上正确填充)仅在缓冲情况下被考虑。
如何确保数据库上的非缓冲查询被正确取消?
非缓冲异步 API 当前...不是完全异步,因为:IAsyncEnumerable<T>
当时不存在 。这将在 v3 中重新讨论,作为 API 中断 - 以及异步取消 通常 。如此简短的回答:现在,你不能。
使用 Dapper 的 SqlMapper.QueryAsync<T>
方法在 gRPC
API.
测试 API 客户端 dies/disconnects 时的场景,非缓冲查询在数据库上保持活动状态,直到完全执行,即使调用服务不再使用结果,这是在浪费宝贵的数据库资源。
查看 QueryAsync
代码,取消令牌(在 API 客户端 death/disconnect 上正确填充)仅在缓冲情况下被考虑。
如何确保数据库上的非缓冲查询被正确取消?
非缓冲异步 API 当前...不是完全异步,因为:IAsyncEnumerable<T>
当时不存在 。这将在 v3 中重新讨论,作为 API 中断 - 以及异步取消 通常 。如此简短的回答:现在,你不能。