From 714c487ef21ca511d3eb63381dffb3b422ab5b80 Mon Sep 17 00:00:00 2001 From: Terranom674 Date: Thu, 3 Sep 2026 12:54:52 +0200 Subject: [PATCH] Signal priority sync work to an active warmup --- runtime/webdav-warmup-dispatch.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/runtime/webdav-warmup-dispatch.php b/runtime/webdav-warmup-dispatch.php index 4a8448d..870e1d3 100644 --- a/runtime/webdav-warmup-dispatch.php +++ b/runtime/webdav-warmup-dispatch.php @@ -112,6 +112,29 @@ foreach (bratonien_tools_nc_connector_connections() as $connection) } } + if ($mode === 'sync') + { + if (!is_dir($state_dir) && !@mkdir($state_dir, 0750, true) && !is_dir($state_dir)) + { + fwrite(STDERR, "Warmup-Priorität für Verbindung #{$connection_id} konnte nicht signalisiert werden: State-Verzeichnis fehlt.\n"); + $result = 1; + continue; + } + $priority_file = $state_dir.'/webdav-cache-warmup-priority-sync'; + $priority_payload = json_encode(array( + 'connection_id'=>$connection_id, + 'requested_at'=>time(), + 'reason'=>'connector-sync-complete', + ), JSON_UNESCAPED_SLASHES); + if (!is_string($priority_payload) || @file_put_contents($priority_file, $priority_payload."\n", LOCK_EX) === false) + { + fwrite(STDERR, "Warmup-Priorität für Verbindung #{$connection_id} konnte nicht geschrieben werden.\n"); + $result = 1; + continue; + } + @chmod($priority_file, 0664); + } + // Der Guard hält webdav-sync.lock für den gesamten Worker-Lauf geteilt. // Dadurch kann der produktive Source-/Shadow-Tree während Download, Swap, // Piwigo-Aufruf und Restore nicht von einem Connector-Sync ersetzt werden.