J'ai récemment travaillé avec Esper et il y a une fonctionnalité que j'ai manquée dans la documentation mais elle pourrait exister.Esper: ajout d'un événement à la fenêtre Accumulation de temps à condition qu'une condition soit affectée à l'attribut
Je voudrais stocker certains événements jusqu'à ce que personne n'apparaisse pendant 15 sec, et quand cela arrive, relâchez-les tous.
Une requête fait exactement cela, il est:
select rstream * from MyEvent.win:time_accum(15 sec)
je peux ajouter une condition sur la MyEvent comme
select rstream * from MyEvent where status = 'ALARM_END'.win:time_accum(15 sec)
Et cela fonctionne parfaitement.
Maintenant, je voudrais ajouter une condition sur l'attribut eventType disant que:
si un nouvel événement est déclenché avec eventType xxxx mais il y a déjà un événement avec eventType xxxx dans la fenêtre puis ne pas ajouter cette nouvel événement popping à la fenêtre (et donc n'arrête pas le chronomètre de 0 à 15s).
Y a-t-il un moyen de faire cela?
Merci beaucoup!
EDIT:
En regardant de plus profondément dans mon besoin et de la documentation ESPER, je pense que mon besoin est plus satisfait
select * from MyEvent.win:time_length_batch(15 sec, 2)
Je ne pense pas avoir besoin rstream que je veux juste accumuler soit 1 ou 2 éléments et les obtenir tous en une fois dans un tableau (de nouveaux événements, ça va).
Cependant, est-il possible d'ajouter une condition sur le premier (et le premier uniquement) MyEvent entrant dans la fenêtre? C'est status = 'ALARM_END'.
Bonjour, merci pour votre réponse. Je pense que je n'ai peut-être pas été clair dans ma question. 'xxxx' n'est pas censé être une variable fixe. – Tchak
Supposons que la fenêtre actuelle comporte 3 événements avec les types d'événement 'eT1', 'eT2' et 'eT3'. Ensuite, si un nouvel événement est déclenché, il n'est ajouté à la fenêtre que si son eventType est différent de 'eT1', 'eT2' et 'eT3'. Cordialement. – Tchak
Note: Je peux utiliser une solution non optimale en écrivant la troisième ligne pour chaque événement 'xxxx' dans ma liste d'événements. – Tchak