v0.22.1: sync CLI, reaper TZ fix, maintenance-cron self-heal
- wp prautoblogger generate --sync: synchronous VPS orchestrator mode. Acquires lock in-process, calls on_orchestrate_tick() then loops on_generate_tick() up to 20 ticks. Emits JSON summary; exits 0/1. - Generation_Checkpoint_Runner::set_sync_mode(): static flag suppresses wp-cron reschedule inside on_generate_tick() when the VPS external loop is the driver. No effect on existing async (cron/AJAX) paths. - Run_Reaper TZ fix: sweep_stuck_stages() + sweep_stuck_runs() now use wp_date() for $cutoff so it matches updated_at's local-TZ storage. gmdate() was 8h behind on Hostinger (UTC+8) — latent for old stale runs but would suppress reaping of same-day-stalled runs. - DB_Migrations v0221 self-heal: restores missing maintenance crons (reap_orphan_research_rows, collect_metrics, sync_runware_models). prautoblogger_daily_generation deliberately NOT re-registered — VPS systemd timer owns generation scheduling. Note: wp-cron reliability on this Hostinger host is suspect; maintenance crons are low-stakes. Agent-Session: prab-reliability-20260622
This commit is contained in:
@@ -125,5 +125,32 @@ class PRAutoBlogger_DB_Migrations {
|
||||
}
|
||||
update_option( 'prautoblogger_migrated_enc_prefix', '1' );
|
||||
}
|
||||
|
||||
// v0.22.1 self-heal: restore low-stakes maintenance cron events that were
|
||||
// lost when the WP-Cron schedule vanished after the 06-15 deploy cycle.
|
||||
// NOTE: wp-cron reliability on this Hostinger host is suspect (background
|
||||
// PHP processes are killed at ~10 min). These low-stakes events (metrics,
|
||||
// reaper, Runware sync) are acceptable on wp-cron; daily GENERATION is NOT
|
||||
// re-registered here — the VPS systemd timer owns generation scheduling.
|
||||
// The prautoblogger_migrated_schedule_tz_v082 guard is intentionally NOT
|
||||
// re-used here; this migration targets the missing events themselves.
|
||||
if ( ! get_option( 'prautoblogger_migrated_maintenance_crons_v0221' ) ) {
|
||||
// Re-register maintenance crons only — daily_generation deliberately excluded.
|
||||
// Activator::schedule_cron() uses wp_next_scheduled() guards so it is
|
||||
// idempotent and will not overwrite events that are already present.
|
||||
if ( ! wp_next_scheduled( 'prautoblogger_reap_orphan_research_rows' ) ) {
|
||||
$tomorrow_reap = strtotime( 'tomorrow 03:15' );
|
||||
if ( false !== $tomorrow_reap ) {
|
||||
wp_schedule_event( (int) $tomorrow_reap, 'daily', 'prautoblogger_reap_orphan_research_rows' );
|
||||
}
|
||||
}
|
||||
if ( ! wp_next_scheduled( 'prautoblogger_collect_metrics' ) ) {
|
||||
wp_schedule_event( time() + HOUR_IN_SECONDS, 'prautoblogger_six_hours', 'prautoblogger_collect_metrics' );
|
||||
}
|
||||
if ( ! wp_next_scheduled( 'prautoblogger_sync_runware_models' ) ) {
|
||||
wp_schedule_event( time() + HOUR_IN_SECONDS, 'daily', 'prautoblogger_sync_runware_models' );
|
||||
}
|
||||
update_option( 'prautoblogger_migrated_maintenance_crons_v0221', '1' );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user