Repository navigation
feat: choose the scheduling driver, list and migrate scheduled events - #470
Merged
Merged
Conversation
config/schedule.php names the driver (POLLORA_SCHEDULE_DRIVER) and the hooks that stay on WP-Cron. pollora:schedule:list reads the cron option, which now indexes every driver's events, and shows each one's type and driver; pollora:schedule:migrate moves pending events between drivers. pollora:doctor and Site Health report an unknown or missing driver, and events a former driver still keeps.
ogorzalka
changed the base branch from
feat/require-schedule-package
to
release/v13.36.0
October 13, 2026 12:48
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 3 of the pollora/schedule delivery plan (framework side). Stacked on #469: the base is
feat/require-schedule-package; retarget torelease/v13.36.0before deleting that branch.It needs pollora/schedule v0.1.1, which is Pollora/schedule#1 (Action Scheduler driver) and #2 (the
cronindex and the migrator), neither merged nor tagged yet. The constraint is^0.1.1 || ^1.0(the provider calls what 0.1.0 lacks:Schedule::driver(),boot(),Migrator…), so it cannot merge before the tag, and CI fails until then; the tests below were run against the package branch (symlinked). #469 can keep^0.1.What it adds
config/schedule.php(pollora-scheduletag):driver(POLLORA_SCHEDULE_DRIVER, defaultwp-cron) andprotected_hooks. An unknown driver name falls back to WP-Cron instead of breaking the site, andpollora:doctorsays so.pollora:schedule:list(--type,--driver,--site,--network,--json), read from thecronoption only. The driver column shows(protected),(fallback)and(to migrate), computed at display time from the engine's protected hooks and the active driver, never stored.pollora:schedule:migrate(--from,--to,--dry-run), a thin wrapper of the package'sMigrator.schedule-drivercheck forpollora:doctorand Site Health, and an administration notice, both from oneScheduleStatusservice so they say the same thing.booted(Schedule::boot()): the application starts before WordPress can take hooks.Not in this PR (step 5):
pollora:schedule:recover, which belongs to the Laravel driver, and the removal ofuse_laravel_scheduler.Run on pollora-test
With the package branch and WooCommerce's Action Scheduler:
pollora:schedule:listshows the 23 events, 22(to migrate)andaction_scheduler_run_queue(protected);pollora:doctorreports the 23 events with the exact command;pollora:schedule:migratemoves them; the doctor then says the events are kept byaction-scheduler; with the site back onwp-cronthe doctor reports the 23 left inaction-scheduler;pollora:schedule:migrate --to=wp-cron(source guessed) brings them back and thecronoption is identical to the start, with nothing left in the Action Scheduler group.Tests
24 feature tests for the commands, check, notice and provider. Full suite: the same 11 failures as on #469 (no
pdo_sqliteon this machine), type coverage 99.1 %, PHPStan, Pint and Rector clean.Labels are English, like the other commands; the study's « à migrer » is
(to migrate).