Files
rippy/docker/worker/celery_app.py
T
Hitonabi 7652afe955
Ampel / ampel (push) Failing after 28s
Deploy-Befunde gefixt: Disc-Typ-Verlust, giftiger Prescan-Cache, caps-Import
- Pre-Scan verlor den erkannten Typ (BDs hiessen immer "DVD"): scan()
  reicht disc_type jetzt in die Zweige durch
- GIFTIG: Cache-Key nur aus Geraetepfad — die naechste Disc im selben
  Laufwerk haette die Metadaten der vorherigen geerbt. Key enthaelt jetzt
  einen Disc-Fingerabdruck (Label|Groesse)
- Worker-Faehigkeiten: import caps auf Modulebene — im worker_ready-Signal
  war /app nicht mehr im sys.path (ModuleNotFoundError im Deploy-Log)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 20:54:14 +02:00

40 lines
1.0 KiB
Python

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,
)
# Import auf Modulebene: im worker_ready-Signal ist /app nicht mehr
# zuverlässig im sys.path (ModuleNotFoundError 'caps', Deploy 23.07.).
import caps # noqa: E402
import db # noqa: E402
@worker_ready.connect
def melde_faehigkeiten(**kwargs):
"""Beim Start: eigene Encoder-Fähigkeiten in die DB melden (UI-Anzeige)."""
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}")