1

我想使用 tdengine 的订阅功能来订阅一类设备的数据,它实际上是一个超级表。我只是在他们的官方网站上关注演示。由于我要恢复消费,所以我没有消费的数据。代码如下:

//CREATE SUBSCRIBE
TSDBSubscribe sub = ((TSDBConnection)conn).subscribe("topic", "select * from meters", false);

//CONSUME DATA
int total = 0;
while(true) {
    TSDBResultSet rs = sub.consume();
    int count = 0;
    while(rs.next()) {
        count++;
    }
    total += count;
    System.out.printf("%d rows consumed, total %d\n", count, total);
    Thread.sleep(1000);
}

//CLOSE SUBSCRIBE 
sub.close(true);

//RELEASE RESOURCE
resultSet.close();
stmt.close();
conn.close();

此代码与他们网站的演示代码相同,但性能不如他们的描述。我设置了 "restart = false" ,它仍然从一开始就消耗。我希望有人可以帮助找出问题所在?

4

1 回答 1

1
  1. 我遇到了这个问题。首先,您可以查看您的 tdengine 客户端的 taoslog.*。你会发现有一个关于路径的错误。(我忘记了实际名称,但路径名包括订阅)。
  2. 然后你可以检查路径是否存在,如果不存在,请创建它然后尝试。
  3. 如果要查询上次消费后的数据,taos客户端需要在本机标记消费进度。前面提到的路径是什么,将记录进度。
于 2021-12-31T02:06:22.727 回答