我有这样的代码:
@Name("Creating_hourly_measurement_Position_Stopper for line 2")
insert into CreateMeasurement
select
m.measurement.source as source,
current_timestamp().toDate() as time,
"Line2_Count_Position_Stopper_Measurement" as type,
{
"Line2_DoughDeposit2.Hourly_Count_Position_Stopper.value",
count(cast(getNumber(m, "Status.Sidestopper_positioning.value"), double)),
"Line2_DoughDeposit2.Hourly_Count_Position_Stopper.unit",
getString(m, "Status.Sidestopper_positioning.unit")
} as fragments
from MeasurementCreated.win:time(1 hours) m
where getNumber(m, "Status.Sidestopper_positioning.value") is not null
and cast(getNumber(m, "Status.Sidestopper_positioning.value"), int) = 1
and m.measurement.source.value = "903791"
output last every 1 hours; 但它似乎是循环的。我相信这是因为新的测量将修改这一组,这意味着它正在不断扩展。这意味着每次有新数据可用时,都会执行重新计算。
有没有办法计算每小时或每天的测量值或总测量值?
发布于 2019-06-13 18:53:43
它消耗的流是"MeasurementCreated“(参见),它不是由任何EPL产生的,所以可以安全地说,这个EPL本身不可能循环。
如果您想要改进EPL,可以在这个链接上找到一些信息:http://esper.espertech.com/release-8.2.0/reference-esper/html_single/index.html#processingmodel_basicfilter通过将where子句文本移动到一个过滤器中,您可以提前丢弃事件。
发布于 2019-06-13 23:13:49
insert insert到CreateMeasurement不会在MeasurementCreated中引发事件吗?
https://stackoverflow.com/questions/56577625
复制相似问题