CALL apoc.periodic.countdown seems to execute the statement immediately and then proceeded as documented

For background context. I want to delete a node after waiting for a certain amount of time, so I created the query below to do it.

CALL apoc.periodic.countdown(
"delete",
"MATCH (e:example) DELETE e return 0",
30);

However, the database simply deleted the node immediately instead of waiting 30 seconds as intended, so I conducted an experiment like so:

CREATE (e:example) SET e.value = 10 return e;

CALL apoc.periodic.countdown(
"decrement",
"MATCH (e:example) SET e.value = e.value-1 return e.value",
30);

The example node immediately decrements by 1 AND THEN it decrements every 30 seconds as it should. What's up with that?

Since you are not interested in repeating the operation until a state is reached, you can try adding a 30 second delay with apoc’s sleep procedure instead.

Thanks for the solution!

I would need to do some integer tricks since my work requires the delays to be measured in days and hours, but it's a problem I can solve.

It seems inelegant to call a sleep and then call a countdown afterwards to delay the first statement execution but I'm going to mark this as solved.

Do you want to run the query once, but delayed 30 sec OR do you want it run every 30 seconds with a startup delay of 30 sec?

If the former, you don’t need the countdown.

Sorry that it wasnt clear. It is the former that I wanted but for future references where I DO need a countdown, apoc.periodic.countdown seems weird IMO