【问题标题】:Cassandra read in loopCassandra 循环读取
【发布时间】:2019-03-19 13:42:51
【问题描述】:

我在决定如何使用 cassandra 实现读取操作时遇到了一些困难。

情况是我有一个 id 数组,我们称之为 idArray。 读取后,我将结果推送到结果数组(resultArray)中

现在我的问题是这样的代码是否有效?

`for(i;i<idAArray.length;i++)
{   
    let query = "SELECT * FROM table WHERE \"id\"=?idArray[i]" 
    client.execute(query)
    .then(result => resultArray.push(result));
}`

如果可以选择并行运行,请具体说明如何?

提前致谢!

【问题讨论】:

    标签: node.js asynchronous cassandra


    【解决方案1】:

    如果你为execute调用提供回调,那么代码将是异步的,你可以并行发出多个请求:

    client.execute(query, [ 'someone' ], function(err, result) {
      assert.ifError(err);
      console.log('User with email %s', result.rows[0].email);
    });
    

    根据您需要执行的查询数量,您可能需要调整 connection pooling 以允许每个连接有更多正在进行的请求。还建议您准备查询。

    更多信息在documentation

    【讨论】:

    • 我得到了异步部分。无论如何都无法想象在同步模式下这样做:)。但是,假设我有一个大约 5000 个 id 的数组,虽然读取操作不会超过几毫秒,但它仍然是从 cassandra 读取的好方法吗?
    • 是的,你可能需要节流——这就是我提到连接池的原因。
    猜你喜欢
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    相关资源
    最近更新 更多