The record of a task's firings
Each time a task's schedule comes due, the task fires. HarmFlow keeps a record of what became of each firing, so that none is lost silently, even when your Mac was off or the task's file had an error. This page says what the record holds, what survives a restart of the app, and what a task does when its file has an error as the app starts.
What the record holds
HarmFlow records every firing it processes: one on time, a catch-up for the firings it missed, and a run you start by hand. For each one, the record keeps:
- How it fired. On schedule, as a catch-up, or by hand, with the time it was due and the time HarmFlow processed it.
- What became of it. Its execution started; it waited in the queue behind the execution that was running; it joined a firing that already waited; or it was skipped.
- Why it was skipped. A skipped firing says why, such as: the task was running, its file had an error, or the firings were missed and the task skips missed runs.
- The choice it followed. A catch-up records how many firings it stands for. When the task could fire, it also records the Missed runs choice that applied to them: Run once on return or Skip. A run you start by hand while the task is running records the Overlapping firings choice it followed.
The record keeps each task's 20 latest firings. It stays after you delete the task, as the task's executions do.
What survives a restart
The last firing HarmFlow processed for each task, and the next one it waits for, are saved before anything runs. When the app stops, or your Mac shuts down, and starts again, the task goes on from them: a firing that came due meanwhile is a missed firing, and no firing runs twice.
A task whose file has an error as the app starts
When a task's file fails HarmFlow's check as the app starts, the task keeps the schedule HarmFlow saved for it before. It does not run while the file stays invalid:
- each firing that comes due is recorded as skipped, with the reason that the task's file fails validation;
- firings missed while the app was not running are recorded the same way.
Once you fix the file, the task goes on with its saved schedule. Its next firing is the one that schedule gives, not one counted from the time of the fix, and none of the skipped firings runs afterwards. If the fix changes the schedule itself, the next firing comes from the new schedule.
Where to see it
The record is kept by the app for its own use. The dashboard does not show it.