Various build fixes, cleanup and details (#6)

- Major memory usage reduction in video previews
- Finally builds properly on Windows too

Reviewed-on: #6
This commit is contained in:
Leo Vasanko
2023-11-21 15:32:49 +00:00
parent 58b9dd3dd4
commit 0cf9c254e5
10 changed files with 78 additions and 27 deletions

View File

@@ -3,6 +3,7 @@ import datetime
import mimetypes
import threading
from concurrent.futures import ThreadPoolExecutor
from multiprocessing import cpu_count
from pathlib import Path, PurePath, PurePosixPath
from stat import S_IFDIR, S_IFREG
from urllib.parse import unquote
@@ -14,6 +15,7 @@ from blake3 import blake3
from sanic import Blueprint, Sanic, empty, raw, redirect
from sanic.exceptions import Forbidden, NotFound
from sanic.log import logger
from setproctitle import setproctitle
from stream_zip import ZIP_AUTO, stream_zip
from cista import auth, config, preview, session, watching
@@ -30,11 +32,16 @@ app.blueprint(bp)
app.exception(Exception)(handle_sanic_exception)
setproctitle("cista-main")
@app.before_server_start
async def main_start(app, loop):
config.load_config()
setproctitle(f"cista {config.config.path.name}")
workers = max(2, min(8, cpu_count()))
app.ctx.threadexec = ThreadPoolExecutor(
max_workers=8, thread_name_prefix="cista-ioworker"
max_workers=workers, thread_name_prefix="cista-ioworker"
)
await watching.start(app, loop)