如何向inputHandler提供输入数据

时间:2018-05-17 11:49:02

标签: wso2 siddhi

我无法找到任何用例或任何文档,其中提到我们如何在使用siddhi作为库时将输入数据提供给inputHandler而不进行硬编码。

我在互联网上找到的所有内容都是带有静态数据的inputHandler。 例如: - inputHandler.send(new Object [] {“WSO2”,50f,30L});等。,

我想知道在使用siddhi作为库时我们如何将JSON数据传递给inputHandler或流?

1 个答案:

答案 0 :(得分:1)

在siddhi中,简单的数据流可以描述如下。

来源(输入) - > sourceMapper - >流> {queries - > stream} - > .... stream - > sinkMapper - >接收器(输出)

使用siddhi作为库时, InputHandler 用于向流提供数据。

但是当您直接向流提供数据时,不会发生映射。因此,您必须为相关流的每个属性提供精确值。

如果您需要以编程方式向源级别提供数据,则可以使用“ inMemory ”[1]类型的来源,然后使用 InMemoryBroker 提供数据[2]

请参阅代码[3]作为示例。

[1] https://github.com/wso2-extensions/siddhi-map-json/blob/master/component/src/test/java/org/wso2/extension/siddhi/map/json/sourcemapper/JsonSourceMapperTestCase.java#L52

[2] https://github.com/wso2-extensions/siddhi-map-json/blob/master/component/src/test/java/org/wso2/extension/siddhi/map/json/sourcemapper/JsonSourceMapperTestCase.java#L87

[3] https://github.com/wso2-extensions/siddhi-map-json/blob/master/component/src/test/java/org/wso2/extension/siddhi/map/json/sourcemapper/JsonSourceMapperTestCase.java