Skip to main content

Scheduler

Some work has to happen on its own, without anyone opening the admin panel: refreshing shipment statuses, sending abandoned-cart reminders, processing the fiscal receipt queue, optimizing uploaded images. In older systems that meant asking the hosting provider to add cron lines. ECMS9 does it itselfSettings → Scheduler.

The Scheduler page: every background task with its schedule, last and next run

How it works

The site starts its own tasks while it is being used. Every visit — to the storefront or to the admin panel — nudges the scheduler, which starts the work in a separate process, at most once a minute. Nobody waits for it: the visitor's page is served as usual while the task runs alongside.

That means a site with normal traffic needs no setup at all.

A site nobody visits

Tasks run while the site lives. If a shop gets no visits at night, the tasks scheduled for that time run at the next visit. When exact timing matters (nightly reports, for example), add one cron line — the page shows the ready command.

The task list

Each row shows the schedule, when the task last ran (and how long it took) and when it is due next:

  • switch on the right — turn the task off, or back on;
  • ⚡ button — run it now, without waiting for the schedule. The task's output appears right under the row, which is the quickest way to see whether a module is configured correctly;
  • a task whose module is switched off (or not installed) is greyed out and never runs.

Tasks that failed on their last run are marked in red with the error text.

Running a task by hand: the output appears right under the row

What is in the schedule

The list depends on the modules you have installed:

TaskDefault schedule
Nova Poshta: refresh shipment statusesevery 30 minutes
Nova Poshta: refresh the city directorydaily, 03:20
Nova Poshta: refresh the branch cache (in batches)every 15 minutes
Nova Poshta: local street directory (in batches)every 15 minutes
Fiscal (PRRO): receipt queueevery 5 minutes
Fiscal (PRRO): close the shift (Z-report)daily, 23:50
Automations: run due actionsevery 5 minutes
Automations: scan for triggersevery 15 minutes
CRM: task remindersevery 15 minutes
Abandoned carts: remindershourly
Savings bonuses: write off expireddaily, 03:40
Savings bonuses: expiry notificationsdaily, 09:10
Marketplaces: import ordersevery 10 minutes
Pixozip: image optimization queueevery 5 minutes
Cloud storage: sync new filesevery 2 minutes
Headless API: prune tokens and cartsdaily, 04:10
Statistics: prune old rowsdaily, 04:00
Module licenses: daily checkdaily, 05:10

Some tasks are off until you enable them — page-cache warming (daily, 05:30), the cloud-storage sync sweep (daily, 04:30) and the SalesDrive order export (every 15 minutes). Turn them on when you need them.

Nothing runs by accident

A task only runs when its module is installed AND enabled AND the task's own switch is on. Disabling a module in the module list silently stops all of its scheduled work.