Микросервис оркестрирующий выполнением пользовательских и системных задач.
Grpc адрес сервиса (Http2).
- Порт записан в переменной среды окружения
Kestrel__EndPoints__Http2__Url
(http://*:80)
Http адрес сервиса.
- Порт записан в переменной среды окружения
Kestrel__EndPoints__Http1__Url
(http://*:443)
Деплой.
- Сборка + развертывание - /deploy/docker-compose.yml) или TaskService.Main/Dockerfile
- Стандартные переменные среды в директории для развертывания deploy/dev-env
Написание конфигов задач
Файлы задач
- Стандартные файлы для записи задач JobsShadow.yaml JobsSystem.yaml JobsUser.yaml
- Пути к файлам прописывается в переменных среды
Jobs__Shadow
Jobs__System
Jobs__User
- Так же поддерживаются json файлы с аналогичной структурой
Написание задач
Сервис работает с 3 типами задач - User
, System
, Shadow
Первый тип может создавать юзер со своими данными (как одиночная задача так и повторяющаяся)
Второй тип заносится в БД и исполняется с определенным промежутком(из yaml файла, может быть изменен юзером) с определенными данными (из yaml файла)
Третий тип аналогичен второму, однако не может быть изменен юзером и не показывается ему на фронте
Сервис работает с 2 протоколами - grpc и http
Описание задач пишется в формате yaml файла
Имя задачи, которое будет показываться на фронте:
Interval: "0:0:10" - интервал в стринговом формате TimeSpan
JsonData: - данные, которые будут спаршены в json\proto объект и отправлены
StringData: "test string"
IntData: 12345
BoolData: true
Schema: - схема данных, которая будет отправляться на фронт, необходима для понимания формата данных задачи
StringData : string
IntData: int[]
BoolData: bool
Задача формируется из 3 этапов(Validator\Selector\Sender ), Sender - обязательный этап
Каждый может использовать свой протокол общения
Валидатор необходим для проверки возможности выполнения той или иной задачи и должен отдавать json с bool свойством IsValid
Селектор делает выборку данных, необходимых для исполнителя из данных, которые юзер положил в задачу (или данные из yaml файла), рекомендуется использовать минимальный набор данных для хранения
Сендер отправляет данные от селектора (или из базы, если этап селектора отсутсвует) на обработчика
Этап задачи: - Validator\Selector\Sender
Type: Grpc - протокол для общения
Router: - описание адреса обработчика
Service: AuditService - имя сервиса grpc
Method: GetAuditLogs - имя метода grpc
Uri: http://user-service - url обработчка для отправки
или
Type: Http - протокол для общения, для http отправка происходи Post методом
Router: - описание адреса обработчика
Uri: http://user-service - url обработчка для отправки