主要内容

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

seek

设置事件流中的位置以开始处理事件

自 R2022b 起

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

    说明

    seek(esp,position) 设置开始使用处理器 esp 处理事件流的流位置。

    示例

    seek(esp,position,Name=Value) 还指定了管理数据缓存的选项。

    示例

    全部折叠

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

    创建一个连接到 RecamanSequence 主题的 KafkaStream 对象。

    ks = kafkaStream("kafka.host.com",9092,"RecamanSequence");

    假设您有一个有状态的流处理分析函数 recamanSum 和一个用于初始化每次迭代状态数据的函数 initRecamanSum。创建一个 EventStreamProcessor 对象,运行 recamanSum 函数并使用 initRecamanSum 函数初始化第一次迭代的状态数据。

    esp = eventStreamProcessor(ks,@recamanSum,@initRecamanSum);
    esp = 
    
      EventStreamProcessor with properties:
    
          StreamFunction: @recamanSum
             InputStream: [1×1 matlab.io.stream.event.KafkaStream]
            OutputStream: [1×1 matlab.io.stream.event.InMemoryStream]
            InitialState: @initRecamanSum
           GroupVariable: [0×0 string]
            ReadPosition: Beginning
             ArchiveName: "recamanSum"
        ResetStateOnSeek: 1

    在十个事件窗口内迭代流处理分析函数。

    execute(esp,10);

    检查 recamanSum 函数的结果。

    result = readtimetable(esp.OutputStream)

    输入参数

    全部折叠

    处理事件流的对象,指定为 EventStreamProcessor 对象。

    事件流中的位置,指定为以下值之一。

    • "Beginning" - 事件流中第一个可用的事件

    • "End" - 事件流的结束,即流中最新事件之后的一个事件

    • "Current" - 刚刚经过流中的当前事件

    示例: seek(esp,"Beginning") 将事件流位置移动到事件流中的第一个事件。

    数据类型: string

    名称-值参数

    全部折叠

    Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

    示例: seek(esp,"Beginning",ClearState=true) 将读取位置移动到流中的第一个事件并清除持久数据状态。

    调用 seek 函数后清除数据持久状态的标志,指定为逻辑标量。默认值是 EventStreamProcessor 属性 ResetStateOnSeek 的值。

    数据类型: logical

    调用 seek 函数后流处理函数的每次迭代状态值,指定为任何有效的 MATLAB 数据类型。

    如果流处理分析函数是有状态的,那么 PersistState 必须是与 esp 中设置的状态初始化函数返回的值相同类型的 MATLAB 值。如果流处理分析函数是无状态的,则不能指定 PersistState

    版本历史记录

    在 R2022b 中推出