Files
links/core/apps.py
T
junv 049d417cc8 Remove knowledge graph feature
The knowledge graph feature (links graph) was not functioning correctly
and was slowing down the application. This commit removes it entirely:

- Delete knowledge_graph_urls.py, knowledge_graph_views.py, llm_client.py
- Delete knowledge_graph.html template
- Remove KnowledgeGraphSnapshot model and all llm_*/kg_* fields from
  SiteSettings (migration 0048)
- Remove build_knowledge_graph() and schedule_kg_build() from tasks.py
- Remove KG settings save logic and bulk delete action from views.py
- Remove knowledge_graph_urls include from links/urls.py
- Remove schedule_kg_build scheduler job from core/apps.py
- Remove KG snapshot job registry from links/apps.py
- Remove Knowledge Graph nav item from base.html
- Remove KG settings cards and llmSettingsHelper JS from settings.html
2026-04-14 12:04:44 +10:00

73 lines
2.5 KiB
Python

"""
Core app configuration
"""
from django.apps import AppConfig
import logging
logger = logging.getLogger(__name__)
class CoreConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'core'
def ready(self):
"""
Initialize APScheduler when Django starts
"""
from core.scheduler import scheduler, start_scheduler
from links.tasks import (
schedule_pending_pages, schedule_pending_screenshots,
retry_stuck_image_imports, flush_click_buffer,
)
from apscheduler.triggers.interval import IntervalTrigger
# Start the scheduler
start_scheduler()
# Read intervals from SiteSettings (fall back to 120s if DB not ready)
try:
from links.models import SiteSettings
ss = SiteSettings.get()
pages_interval = ss.schedule_pending_pages_interval or 120
screenshots_interval = ss.schedule_pending_screenshots_interval or 120
except Exception:
pages_interval = 120
screenshots_interval = 120
# Add periodic job for checking pending pages
scheduler.add_job(
schedule_pending_pages,
trigger=IntervalTrigger(seconds=pages_interval),
id='schedule_pending_pages',
replace_existing=True,
)
logger.info(f"Scheduled periodic task: schedule_pending_pages (every {pages_interval}s)")
# Add periodic job for recovering stuck screenshots
scheduler.add_job(
schedule_pending_screenshots,
trigger=IntervalTrigger(seconds=screenshots_interval),
id='schedule_pending_screenshots',
replace_existing=True,
)
logger.info(f"Scheduled periodic task: schedule_pending_screenshots (every {screenshots_interval}s)")
# Add periodic job for retrying stuck image imports (every 5 minutes)
scheduler.add_job(
retry_stuck_image_imports,
trigger=IntervalTrigger(seconds=300),
id='retry_stuck_image_imports',
replace_existing=True,
)
logger.info("Scheduled periodic task: retry_stuck_image_imports (every 300s)")
# Flush Redis-buffered click counts to the database (every 60 seconds)
scheduler.add_job(
flush_click_buffer,
trigger=IntervalTrigger(seconds=60),
id='flush_click_buffer',
replace_existing=True,
)
logger.info("Scheduled periodic task: flush_click_buffer (every 60s)")