Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra触发器是异步的吗?_Cassandra - Fatal编程技术网

Cassandra触发器是异步的吗?

Cassandra触发器是异步的吗?,cassandra,Cassandra,我正在测试cassandra触发器,并实现了ITrigger接口。 如票上所示 似乎cassandra触发器应该是异步的,这意味着在客户端进行插入之后,客户端不应该等待触发器执行 但是我在触发器中添加了一个类似睡眠的15秒,插入操作由于超时而失败。因此,它似乎在等待触发器完成它的工作 有没有办法使触发器异步工作? (根据我阅读的页面,它应该已经是异步的)否,默认情况下,Cassandra等待触发器执行。 但您可以使用带有QueryProcessor的executequery来更改这一点,并运行到

我正在测试cassandra触发器,并实现了
ITrigger
接口。 如票上所示 似乎cassandra触发器应该是异步的,这意味着在客户端进行插入之后,客户端不应该等待触发器执行

但是我在触发器中添加了一个类似睡眠的15秒,插入操作由于超时而失败。因此,它似乎在等待触发器完成它的工作

有没有办法使触发器异步工作?
(根据我阅读的页面,它应该已经是异步的)

否,默认情况下,Cassandra等待触发器执行。

但您可以使用带有
QueryProcessor
的executequery来更改这一点,并运行到单独的线程中。请注意,如果执行此操作并且触发器执行失败,则无法从主查询中知道触发器查询失败

Cassandra 2.x的示例:

@Override
public Collection<Mutation> augment(ByteBuffer key, ColumnFamily update) {
     new Thread(new Runnable() {
        @Override
        public void run() {
            //build your own query from the ByteBuffer key and ColumnFamily  update
            Insert insert = QueryBuilder.insertInto("test_keyspace.test_table").value("id", 1).value("data", "Test");

            //execute query  
            QueryProcessor.process(insert.toString(), ConsistencyLevel.LOCAL_QUORUM);
        }
    }).start();
    return Collections.EMPTY_LIST;
}
@覆盖
公共集合扩充(ByteBuffer键,ColumnFamily更新){
新线程(newrunnable()){
@凌驾
公开募捐{
//从ByteBuffer键和ColumnFamily更新构建您自己的查询
Insert=QueryBuilder.insertInto(“test_keyspace.test_table”).value(“id”,1).value(“data”,“test”);
//执行查询
QueryProcessor.process(insert.toString(),consistentylevel.LOCAL_QUORUM);
}
}).start();
返回集合。空_列表;
}

非常感谢您,Ashraful,我正在学习cassandra中的触发器,从未见过此查询处理器,您为我节省了很长时间:)如果要同步执行,请删除线程部分