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:
@@ -133,7 +133,9 @@ class PRAutoBlogger_Run_Reaper {
|
||||
* @param int $seconds Expected seconds (default 300).
|
||||
*/
|
||||
$expected = (int) apply_filters( 'prautoblogger_filter_stage_expected_seconds', self::EXPECTED_STAGE_SECONDS );
|
||||
$cutoff = gmdate( 'Y-m-d H:i:s', time() - ( 2 * $expected ) );
|
||||
// Use wp_date() so the cutoff is expressed in the site's local timezone,
|
||||
// matching the updated_at values written by current_time('mysql') (v0.22.1 TZ fix).
|
||||
$cutoff = wp_date( 'Y-m-d H:i:s', time() - ( 2 * $expected ) );
|
||||
$now = current_time( 'mysql' );
|
||||
|
||||
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
|
||||
@@ -169,7 +171,8 @@ class PRAutoBlogger_Run_Reaper {
|
||||
* @param int $seconds Expected seconds (default 1800).
|
||||
*/
|
||||
$expected = (int) apply_filters( 'prautoblogger_filter_expected_run_seconds', self::EXPECTED_RUN_SECONDS );
|
||||
$cutoff = gmdate( 'Y-m-d H:i:s', time() - ( 2 * $expected ) );
|
||||
// Use wp_date() so the cutoff matches updated_at's local-timezone storage (v0.22.1 TZ fix).
|
||||
$cutoff = wp_date( 'Y-m-d H:i:s', time() - ( 2 * $expected ) );
|
||||
|
||||
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching
|
||||
$stuck = $wpdb->get_col(
|
||||
|
||||
Reference in New Issue
Block a user