Skip to content

Timer

A timer defines a task that should be executed at a given time or repeatedly at a given interval.

Add new timer

Register a task that runs on the specified schedule. The web ui for managing timers has been included Since v8.0.20 .

  1. Select the icon from the left side menu bar.

  2. Click + of from the top left.

  3. Set timer id (name), timer spec, and task TQL path.

  1. Click “Create” button.

Start/Stop/Delete timer

Use the toggle button to start and to stop the timer.

Timer Schedule Spec.

There three possible examples)

0 30 * * * *           Every hour on the half hour
@every 1h30m           Every hour thirty
@daily                 Every day

CRON expression

Field nameMandatory?Allowed valuesAllowed special characters
SecondsYes0-59* / , -
MinutesYes0-59* / , -
HoursYes0-23* / , -
Day of monthYes1-31* / , - ?
MonthYes1-12 or JAN-DEC* / , -
Day of weekYes0-6 or SUN-SAT* / , - ?
  • Asterisk *
    The asterisk indicates that the cron expression will match for all values of the field; e.g., using an asterisk in the 5th field (month) would indicate every month.

  • Slash /
    Slashes are used to describe increments of ranges. For example 3-59/15 in the 1st field (minutes) would indicate the 3rd minute of the hour and every 15 minutes thereafter. The form “*/…” is equivalent to the form “first-last/…”, that is, an increment over the largest possible range of the field. The form “N/…” is accepted as meaning “N-MAX/…”, that is, starting at N, use the increment until the end of that specific range. It does not wrap around.

  • Comma ,
    Commas are used to separate items of a list. For example, using “MON,WED,FRI” in the 5th field (day of week) would mean Mondays, Wednesdays and Fridays.

  • Hyphen -
    Hyphens are used to define ranges. For example, 9-17 would indicate every hour between 9am and 5pm inclusive.

  • Question mark ?
    Question mark may be used instead of * for leaving either day-of-month or day-of-week blank.

Predefined schedules

EntryDescriptionEquivalent To
@yearly (or @annually)Run once a year, midnight, Jan. 1st0 0 0 1 1 *
@monthlyRun once a month, midnight, first of month0 0 0 1 * *
@weeklyRun once a week, midnight between Sat/Sun0 0 0 * * 0
@daily (or @midnight)Run once a day, midnight0 0 0 * * *
@hourlyRun once an hour, beginning of hour0 0 * * * *

Intervals

@every <duration> where “duration” is a string that is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as “300ms”, “-1.5h” or “2h45m”. Valid time units are “ms”, “s”, “m”, “h”.

@every 10h
@every 1h10m30s

Command line

Add timer

Syntax: timer add [--autostart] <name> <timer_spec> <tql-path>

  • --autostart makes the task will start automatically when machbase-neo starts. If the task is not autostart mode, you can make it start and stop manually by timer start <name> and timer stop <name> commands.

  • <name> task’s name

  • <timer_spec> specifies when this task runs. (see below)

  • <tql-path> the tql script as a task

List timers

Syntax: timer list

Start/Stop timer

Syntax: timer [start | stop] <name>

Delete timer

Syntax: timer del <name>

Hello World Example

Let’s make the “Hello World” of the timer.

Create Table

CREATE TABLE HELLO (
  NAME  VARCHAR(100) PRIMARY KEY,
  TICK  DATETIME,
  COUNT INTEGER
);

Make a tql of “Hello World”

Open tql editor, copy the code below and save it as helloworld.tql.

FAKE(once(1))
SQL(`
  INSERT INTO HELLO
  VALUES('hi', now, 1)
  ON DUPLICATE KEY UPDATE SET
    TS = now,
    COUNT = COUNT+1
`)

Execute the script to insert a single record into the HELLO table. Run SELECT SQL to see if it works correctly.

select * from hello where name = 'hi';
sys machbase-neo 2026-09-10 17:00:09
> select * from hello where name = 'hi';
┌────────┬──────┬─────────────────────────┬───────┐
│ ROWNUM │ NAME │ TS                      │ COUNT │
├────────┼──────┼─────────────────────────┼───────┤
│      1 │ hi   │ 2026-09-10 17:00:18.918 │     1 │
└────────┴──────┴─────────────────────────┴───────┘
a row selected.

Register a timer

This timer function on the web, introduced in version 8.0.20, can be achieved using the following shell commands.

This is equivalent with the command line below.

timer add helloworld "@every 5s" helloworld.tql; 

Make the new timer to be started by check “Auto Start” option or do it manually by toggle button.

Once it starts, you can see TS and COUNT change every 5 seconds.

Query the result of the timer

sys machbase-neo 2026-09-10 17:00:19
> select * from hello where name = 'hi';
┌────────┬──────┬─────────────────────────┬───────┐
│ ROWNUM │ NAME │ TS                      │ COUNT │
├────────┼──────┼─────────────────────────┼───────┤
│      1 │ hi   │ 2026-09-10 17:03:24.913 │    19 │
└────────┴──────┴─────────────────────────┴───────┘
a row selected.

Manage timers

It is possible edit, start, stop and delete from the detail page.

Command line

The command timer list shows the status of timers.

sys machbase-neo» timer list;
┌────────────┬───────────┬────────────────┬───────────┬─────────┐
│ NAME       │ SPEC      │ TQL            │ AUTOSTART │ STATE   │
├────────────┼───────────┼────────────────┼───────────┼─────────┤
│ HELLOWORLD │ @every 5s │ helloworld.tql │ false     │ RUNNING │
└────────────┴───────────┴────────────────┴───────────┴─────────┘

Also it is possible to start, stop the timer from the command line.

timer start helloworld;
timer stop helloworld;
Last updated on