Django & Celery — менеджер задач с открытым исходным кодом

Привет!

В этой статье представлен диспетчер задач с открытым исходным кодом на базе Джанго и Сельдерей. Продукт можно использовать для выполнения фоновых задач, которые обычно занимают много времени, с полным контролем: запускать, отменять выполнение, просматривать выходные данные и журналы выполнения после завершения задач. Будучи выпущенным под лицензией MIT, исходный код можно использовать в коммерческих проектах или в деятельности по электронному обучению. Спасибо за прочтение!


✨ Особенности продукта

В этом проекте реализован механизм, который позволяет запускать/отменять задачи по запросу с помощью простого пользовательского интерфейса. Вот основные функции, представленные в этой первой версии:

  • ✅ Каркас: Джанго
  • ✅ Управление асинхронными задачами через Сельдерей
  • Actions: Создать/Отменить
  • ✅ Доступ к пользовательскому интерфейсу для журналов выполнения и выходных данных
  • ✅ Типы задач: Скрипты RUNNER и Пользователи Print
  • Начальная загрузка 5 Дизайн, Dark Mode

Django & Celery — Зарегистрированные задачи

Как только задача запущена, ее текущее состояние немедленно отображается в пользовательском интерфейсе. Это поведение отображается в пользовательском интерфейсе с помощью элементов управления пользовательского интерфейса, которые предлагают состояние задачи и параметр «Отмена».

Джанго и сельдерей — задача запущена


Все запущенные задачи можно отменить, и эта функция может быть полезна, когда фоновая задача выполняется дольше, чем ожидалось.

Для завершенных задач пользователи могут проверить выходные данные задачи непосредственно в пользовательском интерфейсе и визуализировать журнал RUNTIME, если потребуются дополнительные сведения о выполнении.

Django & Celery — журнал выполнения задач


✨ Как использовать продукт

Для обработки фоновых задач требуется работающая служба Redis, а адрес службы должен быть настроен в проекте. настройки (специальный раздел):





CELERY_BROKER_URL         = os.environ.get("CELERY_BROKER", "redis://localhost:6379")
CELERY_RESULT_BACKEND     = os.environ.get("CELERY_BROKER", "redis://localhost:6379")
CELERY_TASK_TRACK_STARTED = True
CELERY_TASK_TIME_LIMIT    = 30 * 60
CELERY_CACHE_BACKEND      = "django-cache"
CELERY_RESULT_BACKEND     = "django-db"
CELERY_RESULT_EXTENDED    = True
CELERY_RESULT_EXPIRES     = 60*60*24*30 
CELERY_ACCEPT_CONTENT     = ["json"]
CELERY_TASK_SERIALIZER    = 'json'
CELERY_RESULT_SERIALIZER  = 'json'



Если предположить, что Redis запущен и работает, вот шаги для запуска продукта в локальной среде:


👉 Шаг 1 — Клонировать исходники из общедоступный репозиторий

$ git clone 
$ cd sample-django-celery

👉 Шаг 2 — Установите модули, используя виртуальную среду

$ virtualenv env
$ source env/bin/activate
$ pip3 install -r requirements.txt

👉 Шаг 3 — Перенести базу данных

$ python manage.py makemigrations
$ python manage.py migrate

👉 Шаг №4 — Начать проект

$ python manage.py runserver

Используя отдельное окно терминала, следующая команда запускает Celery менеджер:

👉 Шаг № 5 — Активировать ВЕНВ

$ source env/bin/activate

👉 Шаг № 6 — Запустить менеджер

$ celery --app=core.celery.app worker --loglevel=info 

На этом этапе мы должны иметь возможность выполнять задачи, используя учетную запись суперпользователя. Обычные пользователи могут только просматривать выходные данные задач и журналы выполнения.

Джанго и Сельдерей — Список задач


✨ Видеопрезентация

Короткую демонстрацию, которая обобщает все вышеперечисленные функции, можно найти на YouTube.

👉 Диспетчер задач Django и Celery — ВИДЕО Презентация


Спасибо за прочтение! Дополнительные ресурсы и поддержка доступны по адресу:

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *