Sample 0119 - Trigger Events at Defined Time Intervals
Introduction
This sample demonstrates how to set up an execution plan with triggers. This sample uses the Event Simulator for inputs and the logger publisher for logging the outputs to the DAS console.
The execution plan used in this sample is as follows.
The following query triggers an event in the
periodicalTriggerStream
event stream every 5 seconds. The purpose of this trigger is to generate events in theperiodicalTriggerStream
event stream in order to merge it with thesensorStream
event stream.define trigger periodicalTriggerStream at every 5 sec ;
The following query forwards a processed event as an output to the
cronTriggerStream
event stream every 10 seconds.define trigger cronTriggerStream at '*/10 * * * * ?' ;
The following query merges the
periodicalTriggerStream
andsensorStream
event streams. Only the values of the attributes specified in the query are merged. Attribute values are taken from thesensorStream
event stream and inserted into theperiodicalTriggerStream
event stream.from periodicalTriggerStream join sensorStream#window.time(10 sec) select meta_timestamp, meta_isPowerSaverEnabled, meta_sensorId, meta_sensorName, correlation_longitude, correlation_latitude, triggered_time, humidity, sensorValue insert into periodicalTriggeredSensorStream;
The following query merges the
cronTriggerStream
andsensorStream
event streams. Only the values of the attributes specified in the query are merged. Attribute values are taken from thesensorStream
event stream and inserted into thecronTrigerredSensorStream
event stream.from cronTriggerStream join sensorStream#window.time(10 sec) select meta_timestamp, meta_isPowerSaverEnabled, meta_sensorId, meta_sensorName, correlation_longitude, correlation_latitude, triggered_time, humidity, sensorValue insert into cronTriggeredSensorStream;
Prerequisites
Set up the prerequisites required for all samples.
Building the sample
Start the WSO2 DAS server with the sample configuration numbered 0119. For instructions, see Starting sample CEP configurations.
This sample configuration does the following:
- Creates the following event streams.
org.wso2.event.sensor.stream:1.0.0
periodicalTriggeredSensorStream:1.0.0
cronTriggeredSensorStream:1.0.0
- Creates an execution plan named
ExecutionPlan
. - Creates the following event publishers.
periodicalTriggeredSensorStreamLogger
cronTriggeredSensorStreamLogger
Executing the sample
Follow the steps below to execute the sample.
- Log into the DAS Management Console.
Click on the Tools tab and then click Event Simulator to open the Event Stream Simulator page. A file named
events.csv
containing sample data is displayed in the Send multiple events section as follows. Click Play to start sending events to the DAS from this file.
The events triggered in the DAS are logged in your CLI as shown in the extract below.
- The events that are triggered in the
periodicalTriggerStream
event stream every 5 seconds haveperiodical
as the unique ID. - The events that are triggered in the
cronTriggerStream
event stream every 10 seconds havecron
as the unique ID.
- The events that are triggered in the