protexa / space_worker /runtime.py
admincybers2's picture
Upload folder using huggingface_hub
c190d85 verified
Raw
History Blame Contribute Delete
1.27 kB
import logging
import threading
import time
from .config import Settings
from .logging_setup import configure_logging
from .model_store import ModelStore
from .worker import RealtimeWorker
logger = logging.getLogger("celery-space.runtime")
def start_worker(settings):
worker = RealtimeWorker(settings)
thread = threading.Thread(target=worker.run_forever, name="supabase-realtime-worker", daemon=True)
thread.start()
return thread
def start_worker_and_block_if_needed():
settings = Settings.from_env()
configure_logging(settings.log_level)
model_store = ModelStore(settings)
model_status = model_store.describe()
logger.info(
"model bucket source=%s mount_path=%s mount_exists=%s protexa_instruction_path=%s ready=%s missing=%s",
model_status["bucket_id"],
model_status["mount_path"],
model_status["mount_exists"],
model_status["protexa_instruction_path"],
model_status["protexa_instruction_ready"],
model_status["missing_instruction_files"],
)
start_worker(settings)
if settings.hang_after_worker_start:
logger.info("worker thread started; intentionally blocking ASGI import so Space remains Starting")
while True:
time.sleep(3600)