Files
octopus/myproject/myproject/celery.py
Andrey Smakotin 0791ebb13b fix: Сохранять файл фото ДО запуска Celery task
При асинхронной обработке фото нужно сначала сохранить файл в БД,
потом запустить Celery task. Иначе task не найдет файл.

Изменения:
- BasePhoto.save() теперь сохраняет файл перед запуском task
- Исправлена проблема 'Photo has no image file' в Celery worker

🤖 Generated with Claude Code
2025-11-15 11:11:08 +03:00

35 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
Celery configuration for myproject with django-tenants support.
IMPORTANT: В мультитенантной среде все задачи должны:
1. Получать schema_name в параметрах
2. Активировать нужную схему через connection.set_schema()
3. Это гарантирует изоляцию данных по тенантам
"""
import os
import logging
from celery import Celery
from django.conf import settings
logger = logging.getLogger(__name__)
# Указываем Django settings module
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
# Создаем Celery app
app = Celery('myproject')
# Загружаем конфигурацию из Django settings с префиксом CELERY_
app.config_from_object('django.conf:settings', namespace='CELERY')
# Автоматическое обнаружение tasks.py в приложениях
# Это позволяет использовать @shared_task в любом приложении
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind=True, ignore_result=True)
def debug_task(self):
"""Тестовая задача для проверки работы Celery"""
print(f'Request: {self.request!r}')
logger.info('Celery is working!')