Skip to content

Task Manager

The Task Manager is the operational dashboard for every background job in the CMS: scheduled tasks (sitemap, session cleanup, e-learning reminders), queued jobs (anything that does not finish inside an HTTP request), and the outbound webhook queue. It also shows the raw system status — PHP version, extension flags, memory limit, cron run times.

Open Settings → Task Manager. The screen has four tabs.

Task Manager with four tabs: Status, Queue, Scheduled Tasks, Webhooks

Tab 1 — System Status

The status tab is a grid of small cards. Read it top to bottom to diagnose a sluggish site.

CardWhat to look for
PHP VersionShould be 8.2 or higher. Older versions work but are unsupported.
MySQL VersionInformational. The system supports MySQL 5.7+, MariaDB 10.4+.
ServerThe Server: header from the web server.
Max Execution TimePHP max_execution_time. Long-running jobs (imports, deploys) need at least 300 seconds.
Memory LimitPHP memory_limit. 256M is tight, 512M is comfortable, 1G handles big imports.
Zend OPcacheMust be Active on production. Inactive means slow PHP.
APCuMust be Active. Inactive means no rate limiting and no response cache.
PCRE JITShould be Active. Affects regex-heavy code paths.
NuxtThe version of the frontend build.
Pending TasksJobs waiting to be processed. Non-zero but stable = healthy. Growing over time = the worker is not running.
Failed TasksJobs that hit the retry limit. Investigate and clean up.
Last Cron RunThe last time the scheduled-tasks runner fired. Should be within the last 60 seconds.
Next Cron RunBest-effort estimate of the next fire time.

Cron not running

If Last Cron Run is more than a few minutes old, scheduled tasks are not firing. The server-side cron entry is missing or wrong. Ask your developer to set up the ./console/bin scheduled-tasks cron job.

Tab 2 — Queue

The queue holds API jobs that run out-of-band. Examples: AI layout generation, bulk imports, long CSV exports. Each job has a status: pending, processing, completed, failed.

Queue tab with a table of pending, processing, completed, and failed jobs

Columns:

ColumnPurpose
EndpointThe API path the job calls.
MethodGET / POST / PATCH / DELETE.
StatusSee the four states above.
Attemptse.g. 2 / 3. The worker retries failed jobs up to max_attempts.
CreatedWhen the job was queued.
ErrorLast error message, if any.

Retry or delete a job

  • Retry (rotate icon) — re-queue a failed job. Resets attempts and moves it back to pending.
  • Delete (trash icon) — remove the job. Available on any status.

Filter the view

The dropdown in the header filters by status (All, Pending, Processing, Completed, Failed).

Tab 3 — Scheduled Tasks

Scheduled tasks run on a fixed interval. They are registered by plugins at install time and live in the scheduled_tasks table.

Scheduled tasks list with interval, last run, next run, and Active toggle

For every task you see:

ColumnPurpose
NameHuman label, e.g. Session Cleanup, Sitemap Generation.
IntervalHow often the task runs (e.g. every 300 seconds = 5 minutes).
Last RunTimestamp of the last successful run.
Next RunWhen it is scheduled to fire next.
ActiveToggle to enable or disable the task.
OverdueRed badge if Next Run is in the past. Means the cron is not firing.

Run a task now

Click the play icon to fire the task immediately. The page shows a spinner while the task runs and updates the Last Run timestamp.

Built-in tasks

TaskIntervalWhat it does
Session Cleanup5 minRemoves DB sessions inactive for more than 2 hours.
Sitemap Generation1 dayRegenerates /sitemap.xml.
Publish Scheduled Pages5 minPublishes Drafts whose scheduled_at has passed.
Elasticsearch Reindex1 minPicks up pending reindex jobs, one at a time.
E-Learning Check Expiry1 hourChecks CME course access expiry per learner.
E-Learning Process Purchases60 secActivates purchases and grants access to courses.
Shopware 6 Category Sync6 hoursRefreshes the local Shopware category cache.
Shopware 6 Session Cleanup1 dayRemoves stale CMS-to-Shopware session mappings.

Plugins can register additional tasks through their bootstrap.php.

Tab 4 — Webhooks

Shows the outbound webhook queue and the delivery history. See Webhooks for the full picture.

The two badges in the tab label tell you quickly whether something is stuck:

  • Yellow — pending deliveries not yet fired.
  • Red — failed deliveries in the last 24 hours.

The cron requirement

Everything on this page depends on a single OS cron entry that invokes the task runner every 30 seconds:

cron
* * * * * /usr/bin/php /path/to/site/console/bin scheduled-tasks --time-limit=25
* * * * * (sleep 30; /usr/bin/php /path/to/site/console/bin scheduled-tasks --time-limit=25)
* * * * * /usr/bin/php /path/to/site/console/bin process-webhooks --time-limit=25
* * * * * (sleep 30; /usr/bin/php /path/to/site/console/bin process-webhooks --time-limit=25)

The process-webhooks command drains the outbound webhook queue every 30 seconds and is a separate entry from scheduled-tasks. If either cron is missing, the queue fills, webhooks stop firing, sessions never get cleaned up, and the sitemap goes stale. The Status tab's Last Cron Run card is the single-number check.

Common issues

Pending Tasks keeps growing. Cron is not running. Check Last Cron Run. If older than two minutes, fix the cron entry.

APCu card is red. Install the php-apcu package on the server and restart PHP-FPM. Rate limiting and response cache stop working without it.

A scheduled task is stuck on "running". The process crashed mid-task. Click the refresh icon to clear the is_running flag, then run the task manually to verify it completes.

Failed task shows "Connection refused". The job called a URL that is down. Retry after fixing the target, or delete the job if it is obsolete.

See also

  • Update Manager — system updates, migrations, deployments.
  • Webhooks — the webhook queue shown in tab 4.
  • Cache — the response cache that shares APCu with the rate limiter.