From 2f5251e9fed8c8c0ab5b4cc373a473938d94913b Mon Sep 17 00:00:00 2001 From: Davide Scaini Date: Sun, 24 May 2026 19:07:23 +0200 Subject: [PATCH] perf: run all background build/merge/rsync subprocesses at nice 19 --- bincio/serve/tasks.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bincio/serve/tasks.py b/bincio/serve/tasks.py index 39ff5dd..2eb9389 100644 --- a/bincio/serve/tasks.py +++ b/bincio/serve/tasks.py @@ -51,6 +51,8 @@ def _job_finish(job_id: str) -> None: _rebuild_lock = threading.Lock() _site_rebuild_event = threading.Event() +_low_priority = {"preexec_fn": lambda: os.nice(19)} + def _site_rebuild_worker() -> None: """Single background thread: debounced Astro build + rsync after uploads. @@ -76,6 +78,7 @@ def _site_rebuild_worker() -> None: "--site-dir", _site_dir], capture_output=True, text=True, + **_low_priority, ) if result.returncode != 0: log.error("site-rebuild: build failed (rc=%d):\n%s\n%s", @@ -89,6 +92,7 @@ def _site_rebuild_worker() -> None: f"{_site_dir}/dist/", _webroot + "/"], capture_output=True, text=True, + **_low_priority, ) if rsync.returncode != 0: log.error("site-rebuild: rsync failed (rc=%d):\n%s\n%s", @@ -138,6 +142,7 @@ def _trigger_rebuild(handle: str) -> None: "--no-build"], capture_output=True, text=True, + **_low_priority, ) if result.returncode != 0: log.error("rebuild[%s]: merge failed (rc=%d):\n%s\n%s",