The WindowActor
is a Coral Actor that enables windowing of events based on count or time. The actor receives individual events but, depending on the settings, waits until a certain time or a certain number of events have been received and then emits a list of the received items.
The WindowActor has type: "window"
. The params
value is a JSON with a single field:
field | type | required | description |
---|---|---|---|
method |
String | yes | The method of windowing to use, either count or time . |
number |
Int | yes | The number of milliseconds (in the case of time ) or number of events (in the case of count ). |
sliding |
Int | no | The number of events or milliseconds a window should slide. For instance, when sliding == 1 and method is count , the window moves 1 event every time an event has been received. In the case of time , sliding should be specified in milliseconds. |
This will create a WindowActor that waits until it receives 3 JSON objects, then emits these 3:
Then, object4 comes in, and the WindowActor emits the following:
The WindowActor
is triggered by any incoming JSON event.
When the right number of objects is collected in the case of count
, a list is emitted as in the example above. In the case of time
, the actor waits that amount of time and then emits what it has collected, if anything.
The WindowActor
returns its state as follows:
field | type | description |
---|---|---|
method |
String | “count” or “time” as set in the constructor |
number |
Int | The number of objects or the number of milliseconds of the window. |
sliding |
Array | The amount of objects or the amount of milliseconds the window slides every time. |
The WindowActor
does not collect state from other actors.
The WindowActor
does not provide timer actions.