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 CEP 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 theÂperiodicalTriggerStream
 event stream in order to merge it with theÂsensorStream
 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
andÂsensorStream
event streams. Only the values of the attributes specified in the query are merged. Attribute values are taken from theÂsensorStream
 event stream and inserted into theÂperiodicalTriggerStream
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
andÂsensorStream
 event streams.  Only the values of the attributes specified in the query are merged. Attribute values are taken from theÂsensorStream
 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 CEP 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 CEP 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 CEP from this file.
The events triggered in the CEP are logged in your CLI as shown in the extract below.
- The events that are triggered in theÂ
periodicalTriggerStream
 event stream every 5 seconds haveÂperiodical
 as the unique ID. - The events that are triggered in theÂ
cronTriggerStream
 event stream every 10 seconds haveÂcron
 as the unique ID.
- The events that are triggered in theÂ