主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

flush

重置读取窗口边界

自 R2022b 起

    此函数需要 Streaming Data Framework for MATLAB® Production Server™

    语法

    说明

    flush(ks) 重置读取窗口边界,以便从 Kafka®ks 读取不完整的数据窗口。

    示例

    示例

    全部折叠

    假设您有一个在网络地址 kafka.host.com:9092 上运行的 Kafka 服务器,该服务器有一个主题 CoolingFan

    还假设 CoolingFan 主题有 5120 条消息。

    创建一个 KafkaStream 对象来连接到 Kafka 主机。配置对象一次读取 500 条消息或事件。

    inKS = kafkaStream("kafka.host.com",9092,"CoolingFan",Rows=500);
    

    配置第二个 KafkaStream 对象以连接到 CoolingFanOut 主题。Kafka 主机向该主题写入消息。

    outKS = kafkaStream("kafka.host.com",9092,"CoolingFanOut",Rows=500);

    CoolingFan 读取 10 个窗口的消息数据并将数据写入 CoolingFanOut。此操作处理来自 CoolingFan 的前 5000 条消息。

    for idx = 1:10
        tt = readtimetable(inKS);
        writetimetable(outKS,tt)
    end

    再阅读一窗口来自 CoolingFan 的消息。此主题仅剩 120 条消息未读。由于 readtimetable 没有接收到包含 500 条消息的完整窗口,因此它会超时并且不会读取剩余的消息。

    tt = readtimetable(inKS)
    
    tt =
    
      0×0 empty timetable

    为了能够读取剩余的 120 条消息,请刷新流。

    flush(inKS)

    将剩余的消息读入时间表并写入 CoolingFanOut。尽管消息数量小于窗口大小,但 readtimetable 仍然能够读取剩余的消息。

    tt = readtimetable(inKS);
    writetimetable(outKS,tt)

    输入参数

    全部折叠

    连接到 Kafka 流主题的对象,指定为 KafkaStream 对象。

    版本历史记录

    在 R2022b 中推出