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
);
Table 1. Results
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;
Table 2. Results
count

110

If we want to cancel this job, we can use the apoc.periodic.cancel procedure.