Skip to the page
Get started

Docs · Automating

Triggers and schedules

Running a Check unattended — the schedule kinds, how firing actually works, and what a missed slot does.

A trigger is a schedule attached to a Check, plus what to do with the result.

Creating, editing, running and deleting one is an admin's. A trigger is a standing instruction to move data out of Mosaic, not an edit to a Check. Viewers and editors can see the list.

#The four schedule kinds

RepeatsFields
Every N minutesMinutes, at least 1
DailyHour and minute — minutes in five-minute steps
WeeklyA time, and which days
MonthlyA time, and a day of the month

A new trigger starts as Daily at 02:00, weekdays only, disabled until you enable it.

For monthly: "31 fires on the last day of shorter months rather than skipping them." A month-end reconciliation set to 31 runs on the 28th of February, which is almost certainly what you meant.

#Which clock it uses

The workspace's time zone, never the server's. The same setting decides what TODAY means inside a query and which day a run counts towards on the Overview.

Change the time zone and every schedule is re-booked in the new one as soon as you save.

#How firing actually works

Mosaic checks every half minute, and a schedule fires on the first check past its time. That is the whole mechanism, and its consequences are worth knowing.

A missed slot fires once, not once per slot. A machine that was off for three days does not wake up and run seventy-two times. It runs once, and the run is marked late by N minutes.

One unfinished run per trigger, ever. If a run overruns its next slot, the next slot is skipped rather than queued behind it. Long runs cannot pile up.

The next run is booked from now, not from the slot that was missed.

A failed run is never retried automatically. It waits for its next slot. This is deliberate — a Check that failed because a source was down will fail again in thirty seconds, and again, and the schedule is the natural backoff.

#Whether Mosaic has to be running

This is the question people get wrong, and the interface answers it directly.

A desktop installation says:

This Mosaic runs only while it is open, so this schedule fires only while this window is. A missed slot fires once when Mosaic next starts, and the run is marked late.

Installed as a service, it says:

Installed as a service: this schedule fires whether or not Mosaic is open, and survives a reboot.

If a schedule matters, install the service. See Run Mosaic.

#The Workflow tab

A trigger is drawn as a canvas, top to bottom:

  1. Schedule — showing the schedule in words, and a warning glyph when it is disabled
  2. Check — fixed and not removable. "The check runs and its rules are marked"
  3. One card per output — file, email, notification or keep
  4. Add output

Selecting a card opens an inspector on the right. Outputs can be moved up and down, enabled individually, and removed.

Blocks run top to bottom. The Check runs once however many blocks there are, and a block that fails does not stop the ones after it.

Run now saves first and then takes exactly the path the scheduler takes — so what you see is what will happen at 02:00, not an approximation of it.

#When the Check fails

The run is recorded first, before any output block runs, because recording is what computes what moved — and what moved decides whether a block has anything to say.

A trigger run is ok only when no block failed and no error-severity Rule was breached. A breached Rule fails the trigger run even when every output delivered successfully.

The error recorded is the breached Rules in their own words, followed by any block that failed, joined with ·.

Whatever happens, the next run is booked. A failing trigger never spins.

#Last run

Shown once there has been one: status, timestamp, row count, duration, and whether it was late — then one line per output block in the order they ran, each with its own result.

#A licence that has lapsed

Schedules stop firing. That is the only thing lapsing stops, along with publishing something new. Checks still run by hand, results are still readable, and the log says so:

3 schedule(s) were due and did not fire: … Checks can still be run by hand.