reextract-originals: run as subprocess to avoid OOM

The in-process approach loaded all 2015 Strava originals into the server
process memory, causing OOM kills. Now spawns `bincio reextract-originals`
as a child process; heavy work runs in an isolated Python interpreter that
exits when done, freeing all memory.

Also adds `bincio reextract-originals` as a standalone CLI command that
prints JSON-lines progress to stdout — useful for running directly on the
VPS via SSH for large backlogs.
This commit is contained in:
Davide Scaini
2026-04-15 09:42:31 +02:00
parent 6890892654
commit 1a563012e2
3 changed files with 146 additions and 106 deletions
+2
View File
@@ -18,6 +18,7 @@ from bincio.import_.cli import import_group # noqa: E402
from bincio.serve.init_cmd import init # noqa: E402
from bincio.serve.cli import serve # noqa: E402
from bincio.dev import dev # noqa: E402
from bincio.reextract_cmd import reextract_originals # noqa: E402
main.add_command(extract)
main.add_command(render)
@@ -26,3 +27,4 @@ main.add_command(import_group)
main.add_command(init)
main.add_command(serve)
main.add_command(dev)
main.add_command(reextract_originals)