apoc.periodic.repeat
Procedure APOC Core
|
This procedure is not intended to be used in a cluster environment, and may act unpredictably. It continues to execute against the same database that it was initiated on, meaning that in a cluster environment, it only executes on the leader. If there is a leader switch then the procedure may error and stop running. |
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.