apoc.periodic.repeat
Procedure APOC Core
apoc.periodic.repeat('name',statement,repeat-rate-in-seconds, config) submit a repeatedly-called background query. The parameter 'config' is optional and can contain a 'params' entry usable in nested Cypher statement.
Signature
apoc.periodic.repeat(name :: STRING?, statement :: STRING?, rate :: INTEGER?, config = {} :: MAP?) :: (name :: STRING?, delay :: INTEGER?, rate :: INTEGER?, done :: BOOLEAN?, cancelled :: BOOLEAN?)
Input parameters
Name | Type | Default |
---|---|---|
name |
STRING? |
null |
statement |
STRING? |
null |
rate |
INTEGER? |
null |
config |
MAP? |
{} |
Output parameters
Name | Type |
---|---|
name |
STRING? |
delay |
INTEGER? |
rate |
INTEGER? |
done |
BOOLEAN? |
cancelled |
BOOLEAN? |
Usage Examples
We can create 10 Person
nodes every second by running the following query:
CALL apoc.periodic.repeat(
"create-people",
"UNWIND range(1,10) AS id CREATE (:Person {uuid: apoc.create.uuid()})",
1
);
name | delay | rate | done | cancelled |
---|---|---|---|---|
"create-people" |
0 |
1 |
FALSE |
FALSE |
We can check how many nodes have been created by running the following query:
MATCH (:Person)
RETURN count(*) AS count;
count |
---|
110 |
If we want to cancel this job, we can use the apoc.periodic.cancel procedure.