gpt4 book ai didi

java - 在 Esper 4.8 中发送计时器事件

转载 作者:行者123 更新时间:2023-11-30 04:17:52 33 4
gpt4 key购买 nike

我有一个 csv 文件作为输入适配器,我想每秒从 csv 文件发送事件。例如,我有 A1、A2、A3、B1、B2 和 B3。我想在第一秒发送 A1、A2 和 A3,在后两秒发送 B1、B2 和 B3。在此引用http://esper.codehaus.org/esperio-4.0.0/doc/reference/en/html_single/index.html#csv-timer有关于发送计时器事件的解释。这是否意味着根据 csv 文件中设置的时间戳发送事件?如果是真的,如何使用?我已阅读此引用资料,但不明白如何使用它。如果引用不能用于每秒发送事件,是否有另一种方法来设置事件以便每秒发送?

最佳答案

除了数据事件之外,您还可以通过发送时间事件以编程方式控制 esper 引擎中的时钟。

// Esper Configuration
ClassLoader cl = EpnService.class.getClassLoader();
URL configURL = cl.getResource("aem.esper.cfg.xml");
Configuration config = new Configuration();
config.configure(configURL);

// Obtain esper service instance
EPServiceProvider esperSvc_ = EPServiceProviderManager.getProvider("TEST", config);

// Disable internal engine timer (if not already done so in esper config file)
TimerControlEvent controlEvent = new TimerControlEvent(TimerControlEvent.ClockType.CLOCK_EXTERNAL);
esperSvc_.getEPRuntime().sendEvent(controlEvent);

// Set engine time
long timeInMillis = System.currentTimeMillis(); // or use some other time from your data
CurrentTimeEvent timeEvent1 = new CurrentTimeEvent(timeInMillis);
esperSvc_.getEPRuntime().sendEvent(timeEvent1);

// Inject events into engine
Object eventObject1 = new Object();
esperSvc_.getEPRuntime().sendEvent(eventObject1);

// Fast forward engine time
timeInMillis += 1000; // Add 1 second
CurrentTimeEvent timeEvent2 = new CurrentTimeEvent(timeInMillis);
esperSvc_.getEPRuntime().sendEvent(timeEvent2);

// Inject more events into engine
Object eventObject2 = new Object();
esperSvc_.getEPRuntime().sendEvent(eventObject2);

关于java - 在 Esper 4.8 中发送计时器事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17904435/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com