Планировщик
Планировщик SyncMaster — это выделенный процесс, который периодически проверяет передачи планировщика в базу данных и создаёт соответствующие запуски в брокере сообщений.
Реализовано с помощью APScheduler.
Установка и запуск
Посредством докер
-
Установите Docker
-
Установите docker-compose
-
Запустите следующие команды:
$ docker compose --profile scheduler up -d --wait
...
docker-compose загрузит все необходимые образы, создаст контейнеры, а затем запустит планировщик.
Параметры можно задать через файл .env или раздел environment в docker-compose.yml
docker-compose.yml
scheduler: image: mtsrus/syncmaster-scheduler:${VERSION:-develop} restart: unless-stopped build: dockerfile: docker/Dockerfile.scheduler context: . target: prod volumes: - ./config.docker.yml:/app/config.yml depends_on: db: condition: service_healthy db-migrations: condition: service_completed_successfully rabbitmq: condition: service_healthy profiles: - scheduler
config.yml
database: url: postgresql+asyncpg://syncmaster:changeme@localhost:5432/syncmaster
broker: url: amqp://guest:guest@localhost:5672
encryption: # Encrypt / Decrypt credentials data using this Fernet key. # !!! GENERATE YOUR OWN COPY FOR PRODUCTION USAGE !!! secret_key: UBgPTioFrtH2unlC4XFDiGf5sYfzbdSf_VgiUSaQc94= worker: log_url_template: https://logs.location.example.com/syncmaster-worker?correlation_id={{ correlation_id }}&run_id={{ run.id }}
Без докер
-
Установите Python 3.11 или выше
-
Установите Реляционную базу данных, запустите миграцию
-
Установите Брокер сообщений
-
Создайте виртуальную среду разработки
$ python -m venv /some/.venv
$ source /some/.venv/activate
...
- Установите пакет
syncmasterpackage со следующими дополнительными зависимостями:
$ pip install syncmaster[scheduler]
...
- Запустить процесс планировщика:
$ python -m syncmaster.Scheduler
...
Планировщик в настоящее время не имеет аргументов командной строки.