使用文件中的时间戳时如何指定时间?
How do I specify time when using timestamps from a file?
在 Esper 中是否可以管理来自输入的时间戳。我使用的文件如下所示:
143 Sat Sep 12 14:43:05 CEST 2009
149 Sat Sep 12 14:43:06 CEST 2009
149 Sat Sep 12 14:43:09 CEST 2009
143 Sat Sep 12 14:43:10 CEST 2009
149 Sat Sep 12 14:43:12 CEST 2009
143 Sat Sep 12 14:43:15 CEST 2009
149 Sat Sep 12 14:43:15 CEST 2009
149 Sat Sep 12 14:43:18 CEST 2009
143 Sat Sep 12 14:43:20 CEST 2009
149 Sat Sep 12 14:43:21 CEST 2009
如何配置 Esper 以便可以使用
select * from Timer.win:time_batch(5 sec)
这样我得到这样的结果:
143 Sat Sep 12 14:43:05 CEST 2009
149 Sat Sep 12 14:43:06 CEST 2009
149 Sat Sep 12 14:43:09 CEST 2009
143 Sat Sep 12 14:43:10 CEST 2009
编辑:
config.getEngineDefaults().getThreading().setInternalTimerEnabled(false);
runtime.sendEvent(new CurrentTimeEvent(0));
engine.getEPAdministrator().createEPL("create context NineToFive start (0, 9, *, *, *) end (0, 17, *, *, *)");
然后我解析我的数据集并发送事件,如下面的答案所述:
long eventTime = userByDate.get(i).getSdf().getTime();
runtime.sendEvent(new CurrentTimeSpanEvent( eventTime ));
runtime.sendEvent(new Event());
步骤是,从使用外部计时器的 EPServiceProviderManager 获取引擎实例:
Configuration config = new Configuration();
config.getEngineDefaults().getThreading().setInternalTimerEnabled(false);
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(config);
在你有一个引擎实例之后,调用它。这会将开始时间设置为零。
epService.getEPRuntime().sendEvent(new CurrentTimeEvent(0));
然后创建您的 EPL 报表。
然后,对于每一行,解析日期,解析事件数据,提前时间,然后像这样发送事件:
long eventTime = parseDate(...);
SomeEvent someEvent = parseEvent(...);
epService.getEPRuntime().sendEvent(new CurrentTimeSpanEvent(eventTime));
epService.getEPRuntime().sendEvent(someEvent);
在 Esper 中是否可以管理来自输入的时间戳。我使用的文件如下所示:
143 Sat Sep 12 14:43:05 CEST 2009
149 Sat Sep 12 14:43:06 CEST 2009
149 Sat Sep 12 14:43:09 CEST 2009
143 Sat Sep 12 14:43:10 CEST 2009
149 Sat Sep 12 14:43:12 CEST 2009
143 Sat Sep 12 14:43:15 CEST 2009
149 Sat Sep 12 14:43:15 CEST 2009
149 Sat Sep 12 14:43:18 CEST 2009
143 Sat Sep 12 14:43:20 CEST 2009
149 Sat Sep 12 14:43:21 CEST 2009
如何配置 Esper 以便可以使用
select * from Timer.win:time_batch(5 sec)
这样我得到这样的结果:
143 Sat Sep 12 14:43:05 CEST 2009
149 Sat Sep 12 14:43:06 CEST 2009
149 Sat Sep 12 14:43:09 CEST 2009
143 Sat Sep 12 14:43:10 CEST 2009
编辑:
config.getEngineDefaults().getThreading().setInternalTimerEnabled(false);
runtime.sendEvent(new CurrentTimeEvent(0));
engine.getEPAdministrator().createEPL("create context NineToFive start (0, 9, *, *, *) end (0, 17, *, *, *)");
然后我解析我的数据集并发送事件,如下面的答案所述:
long eventTime = userByDate.get(i).getSdf().getTime();
runtime.sendEvent(new CurrentTimeSpanEvent( eventTime ));
runtime.sendEvent(new Event());
步骤是,从使用外部计时器的 EPServiceProviderManager 获取引擎实例:
Configuration config = new Configuration();
config.getEngineDefaults().getThreading().setInternalTimerEnabled(false);
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(config);
在你有一个引擎实例之后,调用它。这会将开始时间设置为零。
epService.getEPRuntime().sendEvent(new CurrentTimeEvent(0));
然后创建您的 EPL 报表。
然后,对于每一行,解析日期,解析事件数据,提前时间,然后像这样发送事件:
long eventTime = parseDate(...);
SomeEvent someEvent = parseEvent(...);
epService.getEPRuntime().sendEvent(new CurrentTimeSpanEvent(eventTime));
epService.getEPRuntime().sendEvent(someEvent);