import os import socket from celery import Celery from celery.signals import worker_ready REDIS_URL = os.getenv("REDIS_URL", "redis://localhost:6379/0") celery_app = Celery( "rippy_worker", broker=REDIS_URL, backend=REDIS_URL, include=["tasks"] ) celery_app.conf.update( task_serializer="json", accept_content=["json"], result_serializer="json", timezone="UTC", enable_utc=True, broker_connection_retry_on_startup=True, ) @worker_ready.connect def melde_faehigkeiten(**kwargs): """Beim Start: eigene Encoder-Fähigkeiten in die DB melden (UI-Anzeige).""" import caps import db try: db.init_db() db.save_worker(socket.gethostname(), caps.erkenne_encoder()) except Exception as e: # DB noch nicht da → nicht den Start verhindern print(f"Fähigkeiten-Meldung fehlgeschlagen: {e}")