Сүрөттөө
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.
- The dashboard, email alerting and safe cleanup are free for ever, with no licence key and no time limit.
- No locked features and nothing held back: this directory build is the complete plugin, with no paid tier to upgrade to.
- No tracking and no outbound request: the plugin contacts nothing on a normal install.
- 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.
Everything is included
Scheduler Watchdog is free to download and use. There is no separate paid edition, no key to enter, no account and no time limit: every feature described above ships in this plugin and keeps working.
The plugin 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
The free plugin contacts no external service: the dashboard, alerting and cleanup are not gated behind a key and this build registers no licence screen, so on a normal install there is no outbound request. A dormant licence client ships for a companion add-on hosted outside WordPress.org; if such an add-on is installed and a key is entered there, it is sent to the TillFoundry licence server at https://tillfoundry.com only after the key is saved, to activate the add-on’s paid features.
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 a companion add-on is installed and the licence server is unreachable, the free plugin keeps working: monitoring, alerting and cleanup never depend on it, and the add-on keeps working until the server can be reached again. No error from the licence service blocks a page or an admin action.
Скриншоттор




Орнотуу
- Install the ZIP through Plugins Add New Upload Plugin, or upload the plugin folder to
/wp-content/plugins/. - Activate the plugin through the Plugins screen in WordPress.
- Open Scheduler Watchdog in the admin menu. The plugin has its own top-level menu — Scheduler Watchdog, with Event Log and Settings as submenus — so it is in the same place whether or not WooCommerce is active.
- Review the settings. No licence key is needed and there is no paid tier: the dashboard, alerting and cleanup are all included.
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.KG
-
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. The plugin’s screens are never placed inside the WooCommerce menu: they live under the plugin’s own top-level Scheduler Watchdog menu, with the dashboard, Event Log and Settings as its submenus.
-
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. Scheduler Watchdog is a single free plugin with every feature included: the dashboard, email alerting, the event log and safe cleanup all ship here, with no key, no account, no time limit and no capability that switches off. There is no paid tier to upgrade to, so nothing is locked and no purchase link is needed.
Updates arrive through the WordPress.org plugin directory like any other free plugin, and the plugin registers no update channel 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-watchdogsource. 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?
-
No. This free build makes no outbound request at all: no analytics, no telemetry, no external alerting service and no licence check. A dormant licence client is bundled for a companion add-on, but this build registers no screen that accepts a key, so on a normal install it never contacts anything. See External Services below for the endpoints that client would use if a companion add-on were ever installed.
-
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_settingsoption, and per-user notice state kept in thescheduler_watchdog_dismissed_noticesandscheduler_watchdog_queued_noticesuser-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. -
How do I check which version I am running?
-
Open the plugin’s own Scheduler Watchdog menu. The version is printed next to the dashboard title and in the admin footer on every Scheduler Watchdog screen, so you never have to open Plugins Installed Plugins to answer it.
Сын-пикирлер
There are no reviews for this plugin.
Contributors & Developers
“TillFoundry Scheduler Watchdog” is open source software. The following people have contributed to this plugin.
МүчөлөрүTranslate “TillFoundry Scheduler Watchdog” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Өзгөртүүлөр
0.2.1
- Added: the plugin version is shown on the plugin’s own Scheduler Watchdog screens and in the admin footer, so support can answer “which version?” without opening Plugins Installed Plugins.
- Changed: Scheduler Watchdog now owns its own top-level admin menu, with Event Log and Settings as submenus, so the screens stay in the same place whether or not WooCommerce is active.
- Fixed: this directory build is now free only. The licence-locked control tier that 0.2.0 carried — rate limiting, pause/resume, incident mode, runaway-producer auto-pause, trend export and the network roll-up — has been removed entirely and no longer ships in the free plugin. Nothing is locked or held back behind a key, as the WordPress.org guidelines require. A companion add-on hosted outside WordPress.org may register its own paid feature keys through the
scheduler_watchdog_featuresfilter. - Changed: the dashboard, email alerting, event log and safe cleanup are unchanged and need no key.
- Changed: removed the paid-tier prices and purchase references from this listing, because the listing is free only.
0.2.0
- Added: historical per-hook metric buckets and the safe retention cleanup that keep the free monitoring surface complete.
- Tested up to WordPress 7.1, the version this build is tested against.
0.1.8
- Changed: the Licence & updates tab and its Licence key field, status table and Deactivate this site form are now hidden when no paid add-on is in scope. This build ships only free capabilities, so the readme’s “No licence key is needed” is now true on screen as well; the licence client still ships and the tab returns automatically if a premium add-on registers a paid key.
- Changed: the settings screen shows the installed plugin version now that the dormant Licence tab no longer carries it.
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.phpand 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_periodfilter 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 tois 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.
