apoc.periodic.repeat

Procedure

apoc.periodic.repeat(name STRING, statement STRING, rate INTEGER, config MAP<STRING, ANY>) - runs a repeatedly called background job. To stop this procedure, use apoc.periodic.cancel.

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.