【问题标题】:How to cancel/abort Cassandra query?如何取消/中止 Cassandra 查询?
【发布时间】:2015-10-06 10:11:45
【问题描述】:

在 NodeJS Cassandra 代码中,在处理来自 client.stream()client.eachRow() 的每一行的回调时,停止迭代的正确方法是什么?我如何告诉客户对象我不再对结果感兴趣。甚至可能值得引发“错误”或“完成”事件。

另外,如果在以异步方式处理一行时,代码使用相同的客户端对象启动另一个查询,那么 nodejs-driver 会不会有任何问题?

【问题讨论】:

    标签: node.js cassandra cassandra-2.0


    【解决方案1】:

    使用client.stream,您正在使用stream.Readable,因此您可以在流上调用pause(),但是,驱动程序将继续解析和缓冲数据并拉入新页面(假设启用了自动分页)。

    使用client.streamclient.eachRow 时,您可以提供autoPage 选项来确定驱动程序在到达页面末尾时是否继续分页。如果您担心从大型结果集中读取过多数据,您可以将上一个查询的 pageState 用于下一个查询(例如 here)。不幸的是,这不适用于client.stream (NODEJS-145)。

    另外,如果在以异步方式处理一行时,代码使用相同的客户端对象启动另一个查询,那么 nodejs-driver 会不会有任何问题?

    这不会是一个问题:)

    【讨论】:

      猜你喜欢
      • 2016-03-09
      • 2023-03-07
      • 1970-01-01
      • 2020-10-04
      • 2020-06-03
      • 2018-08-22
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      相关资源
      最近更新 更多