This is a simple example that demonstrates Apache Geode's Continuous Queries(CQs) feature. CQs allow clients to subscribe to server-side events using a SQL-like query. When a client registers a CQ, the client will receive all events that modify the query results.
In this example, the client program will first register a CQ with the query
SELECT * FROM /example-region i where i > 70
. The region has keys and values that are both Integer types.
The program loops, randomly generating two integers to put on the server as the key and value.
If a value is either created or updated that is greater than 70, the above CQ will trigger the RandomEventLister
,
which prints to stdout.
The client will generate data for 20 seconds, close the CQ and Cache, and then exit.
This example assumes you have installed Java and Geode.
-
From the
geode-examples/cq
directory, build the example.$ ../gradlew build
-
Next start a locator, start a server, and create a region.
$ gfsh run --file=scripts/start.gfsh
-
Run the example to demonstrate continues queries.
$ ../gradlew run
-
Shut down the server.
$ gfsh run --file=scripts/stop.gfsh