Backend import и export
Пользователь выбирает backend выполнения на форме import/export.
| Backend | Enum | Поведение |
|---|---|---|
| Inline | INLINE | Выполняется в процессе запроса |
| Python queue | PYTHON_QUEUE | Очередь воркеров внутри процесса |
| Celery | CELERY | Опциональный extra; нужен рабочий broker |
CeleryAvailabilityService скрывает Celery, если extra не установлен или
broker недоступен.
Inline
Самый простой. Подходит для небольших файлов. HTTP-запрос остаётся открытым, пока задание не завершится.
Python queue
ImportExportPythonQueueService — локальный для процесса. Задание,
поставленное в очередь на одном воркере gunicorn, не видно другому.
Используйте для разработки или однопроцессного деплоя, не для
продакшен-флота с несколькими воркерами.
Celery
pip install 'django-chassis[celery]'
Задача живёт в django_chassis.tasks.process_import_export. Настройте
Celery в проекте как обычно. Chassis только диспатчит и пишет историю.
Dispatch
ImportExportDispatchService создаёт строку истории и отдаёт задание
выбранному backend. ImportExportProcessService блокирует строку и
выполняет её. Не вызывайте эти сервисы из доменного кода, если не
расширяете сам сценарий.