Schedule

Kibitzr checks are scheduled to run according to the period and schedule configuration options. When no period or schedule is defined, a check has the default period of 5 minutes.

Keep in mind that Kibitzr runs checks sequentially, so there is no guarantee on the precise start time of a check, one long-running check delays the next one.

Period

The number of seconds to wait between (start of) checks. The period option can handle any of the formats supported by pytimeparse (e.g., 37 minutes, 2 hours)

checks:
  - name: Current Time
    ...
    period: 15

  - name: Fancy check
    ...
    period: 2 hours

Schedule

schedule option provides finer control over start time, it can be set as a single item or as a list of items. A check runs for each schedule item configured.

The syntax is:

  • every (integer) - interval length, required;
  • unit (string) - unit of the interval;
  • at (string) - time to run the check in HH:MM format. Applicable only if unit is “days”.

The rule mimics the pattern: “Every every unit at at.”

checks:
  ...
  schedule:
     every: 1
     unit: days
     at: "12:00"

  ...
  schedule:
     every: 1
     unit: hours

unit is one of seconds, minutes, hours, days or weeks. When every is set to 1 it can be condensed with the single version of the unit:

checks:
  ...
  schedule:
     every: day
     at: "12:00"

Optionally, every can also be one of monday, tuesday, wednesday, thursday, friday, saturday or sunday.

checks:
  ...
  schedule:
     every: thursday
     at: "12:00"

Examples

checks
  - name: Late alarm
    ...
    schedule:
      every: 1
      unit: day
      at: "20:30"

  - name: Crazy scheduling
    ...
    schedule:
    - every: day
      at: "15:30"
    - every: hour
    - every: saturday
      at: "12:13"

For a detailed list of scheduling options, see schedule documentation which powers the Kibitzr scheduler.