Перейти к основному содержимому

Backend import и export

Добавлено в 1.0.1

Пользователь выбирает backend выполнения на форме import/export.

BackendEnumПоведение
InlineINLINEВыполняется в процессе запроса
Python queuePYTHON_QUEUEОчередь воркеров внутри процесса
CeleryCELERYОпциональный 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 блокирует строку и выполняет её. Не вызывайте эти сервисы из доменного кода, если не расширяете сам сценарий.

См. также