import os
from celery import Celery
from django.conf import settings

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "NetworkMonitoring.settings")

app = Celery("NetworkMonitoring")
app.config_from_object("django.conf:settings", namespace="CELERY")

# Automatyczne ładowanie zadań z appek
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

# Routing – teraz centralnie tutaj
app.conf.task_routes = {
    "extractly.*":           {"queue": "extractly"},
    "html_agregator.*":      {"queue": "html"},
    "link_agregator.fetch_all_and_queue_html": {"queue": "link"},
    "link_agregator.check_active": {"queue": "check"},
    "manual_agregator.*":    {"queue": "manual"},
    "image_agregator.*":     {"queue": "images"},
    "cache.*":               {"queue": "default"},
}
app.conf.task_default_queue = "default"
app.conf.worker_prefetch_multiplier = 1
app.conf.task_acks_late = True
app.conf.worker_max_tasks_per_child = 200
app.conf.broker_connection_retry_on_startup = True


@app.task(bind=True)
def debug_task(self):
    print(f"Request: {self.request!r}")
