2016-07-28 6 views
0

Мне нужно сохранить белый список на 2 минуты, но мне нужно выполнить запрос (используя мой белый список), когда придет новый поток. Я использую два потока со следующим кодом:Управление временем с siddhi

Мне нужно заряжать свой WHITELIST каждые две минуты.

define trigger periodicalTriggerStream at every 2 min; 

from DSB_TEMPORAL#window.time(2 min) 
select wlist:whitelist() as whitel , DSB_licensekey, flg_urldsb 
insert into temporal; 

Мне нужно, чтобы этот запрос выполнялся при поступлении нового события. (Я использую свой белый список)

from temporal 
select findwlist:findwhitelist(DSB_licensekey, flg_urldsb, whitel) as flg_url11 
insert into temporal_WL11; 

Возможно ли это?

+0

Просьба дать больше контекста о том, что такое wlist: whitelist() и findwlist: findwhitelist() do? – suho

+0

спасибо, wlist: whitelist() - это расширение функции, которое получает массив json. findwlist: findwhitelist - это другое расширение функции, которое получает строку. Я хочу, чтобы wlist: whitelist() выполнялся каждые две минуты, и я хочу, чтобы этот findwlist: findwhitelist выполнял каждое новое событие, но в findwlist: findwhitelist использую информацию, получаемую в wlist: whitelist(). –

ответ

1

Будет ли это работать?

define trigger periodicalTriggerStream at every 2 min; 

from periodicalTriggerStream 
select wlist:whitelist() as whitel 
insert into whitelStream; 

from whitelStream#window.length(1) join newEventStream 
select findwlist:findwhitelist(DSB_licensekey, flg_urldsb, whitel) as flg_url11 
insert into temporal_WL11; 

Основная идея заключается в вычислении wlist: белый список() каждые 2 минуты, сохранять результаты в # window.length (1), а затем присоединиться новые события с окном событий.