【问题标题】:How to use TDengine's subscribe function to subscribe data如何使用TDengine的订阅功能订阅数据
【发布时间】:2021-09-15 12:40:30
【问题描述】:

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

//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" ,它仍然从一开始就消耗。 我希望有人可以帮助找出问题所在?

【问题讨论】:

    标签: publish-subscribe tdengine


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

    【讨论】:

    • 否则你可以使用root或sudo来执行你的代码,因为应用程序需要优先创建一个文件来记录进度。
    猜你喜欢
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2011-12-03
    • 2019-11-11
    • 2012-08-24
    • 2021-02-01
    • 2015-08-24
    相关资源
    最近更新 更多