TillFoundry Scheduler Watchdog

Wopisanje

Every WooCommerce background job runs through Action Scheduler: marketing and CRM sync, ERP and 3PL pushes, subscription renewals, review requests, email follow-ups, importers. When one integration misbehaves it can enqueue hundreds of thousands of actions or fire them in an ever-tightening loop. PHP workers are consumed, the database is hammered, and the storefront starts returning errors.

Scheduler Watchdog sits beside Action Scheduler and watches it continuously.

  • It samples queue depth and per-hook backlog.
  • It times every action and records failures through Action Scheduler’s own execution hooks.
  • It shows one screen: total pending and past-due counts, the hooks with the highest failure rate, the slowest hooks, the biggest backlogs and the active alerts.
  • It emails you the moment a hook breaks, stalls, or the queue runner stops firing.
  • It cleans up old completed, failed and canceled actions under your retention rules, using Action Scheduler’s own cleaner so nothing is deleted behind its back.

Built for real stores

  • Zero configuration to get started — activate it and the defaults are sensible.
  • Every feature in this plugin is free, with no licence key and no locked capability.
  • No tracking. The plugin makes no outbound request unless you enter a licence key.
  • WooCommerce High-Performance Order Storage (HPOS) compatible.
  • Works with Action Scheduler 3.9.x and 4.x, whether it is bundled inside WooCommerce or installed standalone.

What you get

  • A dashboard of queue depth, pending, past-due, in-progress and failed-in-window counts.
  • Top failing hooks, slowest hooks and largest backlogs.
  • A WordPress dashboard widget.
  • Email alerts for failed actions, stalled/past-due hooks, a missing or overdue queue runner, and stale in-progress claims.
  • A per-alert cooldown so you are not flooded.
  • Safe, retention-based cleanup of old complete, failed and canceled actions — one click or on a daily schedule.
  • Stale-claim recovery.
  • Full control of alert recipients, thresholds and retention.

Scheduler Watchdog never reads or writes orders, order items, refunds or customer records. It operates only on Action Scheduler’s own queue. It stores no order, customer, refund or order-item data. The personal data it does store is limited to the alert-recipient email addresses you configure in its settings, and a small per-user notice flag that remembers which of the plugin’s admin notices you have dismissed or still need to see.

External Services

This free plugin contacts no external service on its own: it declares only free capabilities, every one of them works with no licence key, and a site that never enters a key makes no outbound request. The optional licence client is retained as a dormant key-validation endpoint only; no paid plan is on sale, no capability is gated behind it, and it stays dormant until you choose to enter a key. If you do enter a key, it is sent to the TillFoundry licence server at https://tillfoundry.com only after you save it.

The licence endpoints are:

  • https://tillfoundry.com/api/v1/activate — called when you save a licence key, to register this installation against the key.
  • https://tillfoundry.com/api/v1/validate — called when you press Verify licence now, and automatically in the background at most every twelve hours while a key is stored, to confirm the key is still valid.
  • https://tillfoundry.com/api/v1/deactivate — called when you press Deactivate this site, to release the activation slot.

Each request sends the same installation record plus the licence key:

  • the licence key;
  • the site URL and home URL;
  • the plugin slug and plugin version;
  • the WordPress version and PHP version;
  • whether the site is multisite;
  • the site locale.

The request also carries the site URL in an X-Site-URL header and in the user-agent string. The service records the request IP address. See the provider’s privacy policy and terms of service.

If the licence server is unreachable, the plugin keeps working: monitoring, alerting and cleanup never depend on it, and a previously validated licence stays valid until the server can be reached again. No error from the licence service blocks a page or an admin action.

Screenshots

Instalacija

  1. Install the ZIP through Plugins Add New Upload Plugin, or upload the plugin folder to /wp-content/plugins/.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Open WooCommerce Scheduler Watchdog (or Tools Scheduler Watchdog when WooCommerce is not active).
  4. Review the settings. No licence key is needed.

Action Scheduler must be present for the plugin to do anything. It ships inside WooCommerce, or can be installed as a standalone plugin. The plugin declares no hard plugin dependency, so WordPress never blocks its activation over a missing plugin: it activates on any WordPress site that meets the version requirements, and when Action Scheduler is absent it shows a dismissible admin notice naming Action Scheduler as required and otherwise stays inert.

FAQ

Does this plugin require WooCommerce?

No. WooCommerce is not required, and the plugin declares no hard plugin dependency, so WordPress will not refuse to activate it when WooCommerce is absent. Action Scheduler is the real dependency. WooCommerce bundles Action Scheduler, so on a normal store it is already there. If you run Action Scheduler standalone, monitoring, alerting and cleanup all work too; only the WooCommerce-specific HPOS declaration and the built-in WooCommerce critical-hook presets are skipped. When Action Scheduler itself is missing, the plugin still activates but stays inert and tells you what is missing.

What is Action Scheduler?

Action Scheduler is the background job queue used by WooCommerce and many extensions. Every scheduled task is stored as an „action“ with a hook name, a due date and a status. Scheduler Watchdog reads that queue to measure it.

Is there a paid plan?

No paid plan is on sale. The complete plugin is free to download and use, with no licence key, no trial, no time limit and no capability that switches off. Monitoring, email alerting and safe cleanup are all included. Updates are manual downloads from this store: the plugin registers no WordPress update channel and checks for no update of its own.

Does the plugin delete my jobs?

Never pending or in-progress work. Cleanup only ever removes old complete, failed and canceled actions, through Action Scheduler’s own cleaner. There are hard minimum ages of 7 days for complete/canceled actions and 30 days for failed actions, regardless of what the settings say. A longer „keep“ value is also applied to Action Scheduler’s own cleaner — which otherwise removes complete/canceled actions after 31 days and failed actions after about 90 days on its own schedule — so raising the setting to keep a year of history is actually honoured. Cleanup is off until you enable it, and a preview button shows exactly what would be removed first.

Where are the debug logs?

Enable Debug logging on the Advanced tab, then open WooCommerce Status Logs and select the scheduler-watchdog source. Without WooCommerce, entries go to the PHP error log instead.

Does it work on a high-volume store?

Yes. The metrics table is time-bucketed and pruned on a daily retention run (14 days by default), the dashboard caps the number of hooks it reads, and the shutdown fallback sampler is throttled to once a minute. On stores processing 500+ orders a day, sampling remains cheap because the hot path only writes to memory and flushes once per request.

Is it HPOS compatible?

Yes. Scheduler Watchdog does not touch order storage at all. WooCommerce Status Compatibility lists it as HPOS compatible.

Does the plugin send my data anywhere?

Only if you enter a licence key, and then only to the licence server at https://tillfoundry.com to activate or validate that key. See External Services below for the exact endpoints and the data sent. Nothing is sent when no key is entered. No analytics, no telemetry, no external alerting service.

What does GDPR erasure mean for this plugin?

Scheduler Watchdog stores no order, customer, refund or order-item data. It records the Action Scheduler hook names, counts, durations and action IDs it needs to measure the queue. It also stores two things that can contain personal data: the alert-recipient email addresses you configure, kept in the scheduler_watchdog_settings option, and per-user notice state kept in the scheduler_watchdog_dismissed_notices and scheduler_watchdog_queued_notices user-meta keys, which remembers which plugin notices a user has dismissed or still needs to see. To remove the recipient addresses, clear the Alert recipients field in the plugin settings. The per-user notice state is removed automatically when the affected WordPress user account is deleted. Enabling Delete data on uninstall removes the plugin’s settings, custom tables and transients when the plugin is deleted. Failed actions can also record the error text returned by the failing integration in the plugin’s own events log.

Reviews

There are no reviews for this plugin.

Sobustatkujuce a wuwijarje

„TillFoundry Scheduler Watchdog“ jo software wótwórjonego žrědła. Slědujuce luźe su pśinosowali k toś tomu tykacoju.

Sobustatkujuce

Changelog

0.1.7

  • Fixed: the Flag a hook as slow above this average duration setting now actually decides which hooks are reported as slow. Raising the threshold hides faster hooks from the slowest-hooks table and the REST response, and lowering it surfaces more; previously the value was saved and shown but never applied, so the setting was a no-op and the on-screen promise was false.
  • Fixed: every numeric setting now enforces its declared minimum on save. A crafted or malformed request could previously store 0 for fields documented as 1 or more — the top-hooks limit, the slow-hook threshold, the failure and stall thresholds, the queue-depth warning, the cleanup batch size and the retention ages — even though the on-screen field showed a floor. The 60-second minimum for the sample interval and the 7-day/30-day cleanup floors are unchanged.
  • Fixed: the Action Scheduler is required admin notice now appears on the plugin’s own screens instead of only the WordPress dashboard. The dismissal check matched the text domain rather than the real screen id, so the notice was confined to index.php and a merchant whose Action Scheduler was missing never saw it where they could act on it.
  • Fixed: the admin stylesheet and script are now enqueued using the plugin’s declared menu slug, matching the same real screen ids, so the admin bundle loads on every Scheduler Watchdog screen and on no unrelated admin page.

0.1.6

  • Changed: the plugin is now named TillFoundry Scheduler Watchdog and its text domain is tillfoundry-scheduler-watchdog, matching the WordPress.org directory slug. The admin menu slugs, store product slug, plugin file name and licence endpoints are unchanged, so no bookmark, setting or stored data moves.

0.1.5

  • Changed: the retention settings are now visibly reconciled with Action Scheduler’s own cleaner. The Cleanup tab shows the effective retention the store is actually getting: a panel reports what Action Scheduler’s own cleaner will keep (through the action_scheduler_retention_period filter and, on Action Scheduler 4.x, action_scheduler_retention_period_for_failed) next to what Scheduler Watchdog’s own cleanup deletes. A merchant who asks to keep a year of history can now see that Action Scheduler honours it instead of losing the log at 31 days.
  • Changed: on Action Scheduler 3.9.x, which does not purge failed actions itself, the panel says so instead of implying a failed-action retention period that core ignores.

0.1.4

  • Changed: retention settings are reconciled with Action Scheduler’s own cleaner. A „Keep complete actions (days)“, „Keep canceled actions (days)“ or „Keep failed actions (days)“ value above Action Scheduler’s 31-day (complete/canceled) or ~90-day (failed) default is now honoured by Action Scheduler’s daily cleanup as well as by Scheduler Watchdog’s own run. Action Scheduler’s built-in default is never shortened; a shorter value still takes effect through Scheduler Watchdog’s own cleanup and its 7-day/30-day hard floors.
  • Fixed: the retention filters are now inert while the master „Enable Scheduler Watchdog“ switch is off, so a disabled watchdog no longer changes Action Scheduler’s cleanup behaviour.
  • Fixed: the stored licence key is masked in the Licence tab instead of being printed in the clear, and an unchanged masked field is never re-verified as if it were the key. Settings notices are escaped before they are printed.
  • Release metadata: Tested up to is 6.0, the WordPress version this build is tested against.

0.1.3

  • Accessibility: each queue-health card now explains itself in visible text instead of a tooltip, so a sighted touch or keyboard user can read what „Stale claims“ and the other cards mean. The text is still available to assistive technology.
  • Accessibility: the dashboard, settings and event screen controls get a 44x44px minimum tap target on touch (coarse-pointer) devices, and the event screen gains the same visible focus outlines as the rest of the admin.
  • The Developer tab and its two frontend switches are now shown and saved only for administrators with manage_options. A Shop Manager who can manage the plugin no longer sees them, and a save by that user leaves their stored values alone instead of resetting them.
  • The Event Log and Settings submenu items now use short labels rather than repeating „Scheduler Watchdog:“ in front of each.
  • When Action Scheduler is not active, the dashboard shows a short „No queue to watch yet“ empty state instead of repeating the full environment notice that already appears above it.
  • The licence-expired message now says that every feature keeps working, so no action is needed. The licence status table no longer prints a „Plan“ row.
  • The Verify licence control now shows its no-JavaScript instruction before the disabled button, and the licence row wraps cleanly on narrow screens.
  • The dashboard stops polling for fresh numbers while its browser tab is hidden and resumes when the tab becomes visible, so a background tab no longer burns a request per interval.
  • Rebuilt the distributed package so the release ZIP is byte-identical to the current source tree.

0.1.2

  • Fixed: „Keep complete actions (days)“, „Keep canceled actions (days)“ and „Keep failed actions (days)“ are now applied to Action Scheduler’s own cleaner as well, so a value above Action Scheduler’s 31-day (complete/canceled) or ~90-day (failed) default is not cut short by Action Scheduler’s separate daily cleanup. Scheduler Watchdog extends Action Scheduler’s retention through its supported filters and never shortens Action Scheduler’s own default.
  • Fixed: rebuilt the distributed package so the release ZIP is byte-identical to the current source tree.
  • Changed: the Cleanup settings now explain which retention value wins and where the hard minimum ages apply.

0.1.1

  • Fixed: „Keep complete actions (days)“, „Keep canceled actions (days)“ and „Keep failed actions (days)“ are now applied to Action Scheduler’s own cleaner as well. A value above Action Scheduler’s 31-day (complete/canceled) or ~90-day (failed) default is no longer cut short by Action Scheduler’s separate daily cleanup.
  • Changed: the Cleanup settings now explain which retention value wins and where the hard minimum ages apply.
  • Changed: the privacy wording is now specific. The readme makes no blanket no-personal-data claim; it states that no order, customer, refund or order-item data is stored and names the alert-recipient addresses and per-user notice state that are.

0.1.0

  • Initial release.
  • Queue health dashboard: pending, past-due, in-progress and failed-in-window counts, plus a WordPress dashboard widget.
  • Top failing hooks, slowest hooks and largest backlogs.
  • Email alerts for failed actions, stalled/past-due hooks, a missing or overdue queue runner, and stale in-progress claims, with a per-alert cooldown.
  • Safe, retention-based cleanup of old complete, failed and canceled actions through Action Scheduler’s own cleaner, with hard minimum ages and a preview.
  • Stale-claim recovery.
  • Configurable recipients, thresholds and retention.
  • HPOS compatibility declaration and multisite-aware uninstall behind an explicit opt-in.