One-off and Recurring
Most tasks recur. A few should run once, and expressing that properly matters.
Where to find it
Architect Panel → Automation:
- Tasks — the scheduled tasks themselves
- Task Log — every execution and its result
A one-off is a capped task
Set a frequency and a maximum of one run. The task executes, the cap is reached, and it stops — without anybody needing to remember to disable it.
That is much safer than an uncapped task somebody intends to switch off afterwards.
Bound temporary work with dates
A task needed for a month should have an end date. It then stops on its own, and the failure mode is a task that stopped too early rather than one still running a year later.
The recurring task that should have been one-off
The characteristic mess. A migration task, a backfill, a correction — set up as recurring, run successfully, and left enabled. It then runs every night doing nothing, or worse, doing something again.
Every task should have an answer to "when does this stop", even if the answer is never.
Make one-off work idempotent
Safe to run twice. A backfill that only processes records not already processed can be re-run without harm; one that adds a value each time it runs cannot.
You will run it twice — by accident, or because the first run failed part way.
Preview first, always
One-off tasks tend to be the consequential ones: a data change, a batch of messages, a correction across thousands of records. Preview mode is exactly what it is for, and skipping it on a one-off is the worst place to skip it.
Watch it while it runs
A recurring task can be reviewed next week. A one-off that goes wrong is going wrong now, across your whole dataset. Be present for it.
Have a way back
Before running anything that changes data at scale: a backup you have confirmed, or a way to identify and reverse what it did. Recording which records were touched is often the difference between a reversible mistake and a permanent one.
Tidy up afterwards
A completed one-off task should be removed rather than left disabled. A list of thirty disabled tasks is a list nobody reads, and one of them will be re-enabled by somebody who assumes it is current.
Worked example
A backfill was written to skip records it had already processed, previewed against production data, capped at one run, and watched while it executed. It failed part way on a bad record; re-running it after the fix processed only the remainder. The task was then deleted.
Recommendations
- Cap one-off tasks at one run.
- Make them safe to run twice.
- Always preview a one-off, and watch it run.
- Delete it afterwards, do not disable it.