Рубрики
Без рубрики

Сельдерей в приложении Shiv – Здание SaaS #31

В этом эпизоде мы запекали работника сельдерея и инструмент «Планировщик» в приложение SHIV. Это о … Tagged с Python, Django, SaaS.

В этом эпизоде мы запекали работника сельдерея и инструмент «Планировщик» в приложение SHIV. Это еще один шаг на пути к упрощению набора инструментов на производственном сервере.

Я начал поток, просмотрев рефакторинг, который я сделал, чтобы проводник/main.py Анкет Основной файл используется для отправки в разные инструменты с помощью пакета Shiv.

Рефакторированная версия может передавать контроль над стрельцом, инструментами управления Django или сельдерея.

Чтобы сделать сельдерей, мы зацепили Работник_main к функции отправки сельдерея.

Однажды Работник_main Был установлен, я сгенерировал новое локальное приложение SHIV, чтобы протестировать вещи. Поскольку тестирование может потребовать создания приложения несколько раз, мы взяли обход, чтобы сделать Package.sh проще в использовании локально.

Прежде чем мы начали, сценарий упаковки работал только в непрерывной интеграции. Я изменил некоторые пути, чтобы посмотреть где -то только при запуске CI. Вспоминая, как сделать Bash Если Заявления удивительно сложны для меня.

if [ -n "${CI}" ]; then
    VENV=venv/bin/
fi

Чтобы создать новую версию пакета для тестирования, мы запустили:

$ rm -f conductor-abcd.pyz && CIRCLE_SHA1=abcd package.sh

Собирая команды вместе, очень быстро извлечь эту команду из истории и запустить все шаги в одной строке.

Благодаря нашему тестируемому пакету мы запустили сельдерей с различными вариантами. Когда я закончил, мы остановились на призыве, который выглядел как:

$ /srv/apps/conductor.pyz celery \
    --loglevel INFO \
    --concurrency 2 \
    --beat \
    --schedule /tmp/celerybeat-schedule \
    --pidfile /tmp/celerybeat.pid

Этот набор параметров позволяет нам запустить работника сельдерея вместе с инструментом планировщика битов.

Чтобы закончить проблему GitHub, мы развернули это для постановки и проверки процессов. Мы смотрели на процессы сельдерея с:

$ ps -ef | grep celery

Из этого вывода я объяснил, как работают идентификаторы процессов (PID) и родительские идентификаторы процессов (PPIDS), и я рассказал, как сельдерей создает несколько процессов для повышения параллелизма.

В следующий раз нам нужно сделать аналогичный процесс с инструментом резервного копирования на основе Python, Wal-E. Мы позвоним Wal-E из приложения SHIV, чтобы устранить последнее использование установленной виртуальной среды.

Показать заметки для этого потока в Эпизод 31 Показать заметки Анкет

Чтобы узнать больше о потоке, пожалуйста, проверьте Строительство SaaS с Python и Django Анкет

Оригинал: “https://dev.to/mblayman/celery-in-a-shiv-app-building-saas-31-1j56”