- Update Celery configuration in celery.py - Modify base settings for improved performance - Enhance task management in fleet tasks.py - Revise fleet views.py for better data handling - Add cleanup_tmp_archives.sh script for temporary file management - Adjust docker-compose.prod.yml for consistency - Optimize fleetDashboardStore.js with reduced code complexity
37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
# backend/core/celery.py
|
|
|
|
import os
|
|
from celery import Celery
|
|
from celery import Task
|
|
import gc
|
|
import logging
|
|
|
|
# Postavi Django settings modul
|
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
|
|
|
|
app = Celery('core')
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class ResourceAwareTask(Task):
|
|
"""Celery base task s hookovima za memory-heavy async operacije."""
|
|
|
|
abstract = True
|
|
|
|
def on_success(self, retval, task_id, args, kwargs):
|
|
logger.info("Celery task uspješan: %s (%s)", self.name, task_id)
|
|
super().on_success(retval, task_id, args, kwargs)
|
|
|
|
def on_failure(self, exc, task_id, args, kwargs, einfo):
|
|
logger.exception("Celery task neuspješan: %s (%s): %s", self.name, task_id, exc)
|
|
super().on_failure(exc, task_id, args, kwargs, einfo)
|
|
|
|
def after_return(self, status, retval, task_id, args, kwargs, einfo):
|
|
gc.collect()
|
|
super().after_return(status, retval, task_id, args, kwargs, einfo)
|
|
|
|
# Koristi konfiguraciju iz settings.py s prefiksom 'CELERY_'
|
|
app.config_from_object('django.conf:settings', namespace='CELERY')
|
|
|
|
# Automatski pronalazi taskove u svim 'modules.*'
|
|
app.autodiscover_tasks() |