feat(api,espp, generator): Добавлены настройки для расписания рег работ. Добавлена сеть для всех контейнеров.

This commit is contained in:
Mikhail Trubnikov
2023-10-09 16:11:27 +10:00
parent ad7b06490a
commit ce97fbe502
16 changed files with 4046 additions and 38 deletions

View File

@@ -74,7 +74,7 @@ namespace PARR.API.Controllers.V1
if (task == null) if (task == null)
{ {
//ищем задания в работе, которые можно перезапустить //ищем задания в работе, которые можно перезапустить
//Поиск пои `RobotStatusCode` = 22. //Поиск по `RobotStatusCode` = 22.
//Далее проверяется `LastStatusUpdated`, что время последнего смены статуса не превышает допустимого(берется из настроек, поле `RobotWaitTime`) //Далее проверяется `LastStatusUpdated`, что время последнего смены статуса не превышает допустимого(берется из настроек, поле `RobotWaitTime`)
//и что текущая попытка не больше разрешенной(берется из настроек, поле `RobotAttemptsNumber`) - если это так, берется эта запись. //и что текущая попытка не больше разрешенной(берется из настроек, поле `RobotAttemptsNumber`) - если это так, берется эта запись.

View File

@@ -39,7 +39,7 @@
}, },
"MqSettings": { "MqSettings": {
"GenerateTemplates": { "GenerateTemplates": {
"HostName": "10.99.253.216", "HostName": "parr_rabbit",
"QueueName": "parr-generate-templates", "QueueName": "parr-generate-templates",
"User": "generate_templates_api", "User": "generate_templates_api",
"Password": "DHhjgdsf*&%95" "Password": "DHhjgdsf*&%95"

View File

@@ -129,7 +129,10 @@ namespace PARR.DAL.Context
new { Name = nameof(SettingsFromDb.Category), Description = "Категория создаваемого объекта в ЕСПП", Value = "регламентная работа" }, new { Name = nameof(SettingsFromDb.Category), Description = "Категория создаваемого объекта в ЕСПП", Value = "регламентная работа" },
new { Name = nameof(SettingsFromDb.TemplatePrefixName), Description = "Префикс имени шаблона в ЕСПП", Value = "ПАРР-ДВС-ПТК" }, new { Name = nameof(SettingsFromDb.TemplatePrefixName), Description = "Префикс имени шаблона в ЕСПП", Value = "ПАРР-ДВС-ПТК" },
new { Name = nameof(SettingsFromDb.RobotAttemptsNumber), Description = "Количество попыток выполнения задания роботом", Value = "3" }, new { Name = nameof(SettingsFromDb.RobotAttemptsNumber), Description = "Количество попыток выполнения задания роботом", Value = "3" },
new { Name = nameof(SettingsFromDb.RobotWaitTime), Description = "Время ожидания выполнения роботом задания", Value = "00:15:00" } new { Name = nameof(SettingsFromDb.RobotWaitTime), Description = "Время ожидания выполнения роботом задания", Value = "00:15:00" },
new { Name = nameof(SettingsFromDb.ScheduleTimezone), Description = "Расписание регламентной работы - В каком часовом поясе", Value = "MSK" },
new { Name = nameof(SettingsFromDb.ScheduleExclude), Description = "Расписание регламентной работы - Тип исключения", Value = "Нет исключений" },
new { Name = nameof(SettingsFromDb.ScheduleRepeatRange), Description = "Расписание регламентной работы - Диапазн повторов", Value = "Отсутствует дата завершения" }
); );
}); });

View File

@@ -37,5 +37,21 @@
/// Время ожидания выполнения роботом задания /// Время ожидания выполнения роботом задания
/// </summary> /// </summary>
public TimeSpan RobotWaitTime { get; set; } public TimeSpan RobotWaitTime { get; set; }
/// <summary>
/// Расписание регламентной работы - В каком часовом поясе
/// </summary>
public string ScheduleTimezone { get; set; } = string.Empty;
/// <summary>
/// Расписание регламентной работы - Тип исключения
/// </summary>
public string ScheduleExclude { get; set; } = string.Empty;
/// <summary>
/// Расписание регламентной работы - Диапазн повторов
/// </summary>
public string ScheduleRepeatRange { get; set; } = string.Empty;
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace PARR.DAL.Migrations
{
/// <inheritdoc />
public partial class TblTemplateAndSettingsSchedule : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "ScheduleEsppId",
table: "Templates",
type: "text",
nullable: true);
migrationBuilder.InsertData(
table: "Settings",
columns: new[] { "Name", "Description", "Value" },
values: new object[] { "ScheduleTimezone", "Расписание регламентной работы - В каком часовом поясе", "MSK" });
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DeleteData(
table: "Settings",
keyColumn: "Name",
keyValue: "ScheduleTimezone");
migrationBuilder.DropColumn(
name: "ScheduleEsppId",
table: "Templates");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,39 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
namespace PARR.DAL.Migrations
{
/// <inheritdoc />
public partial class TblSettingsUpd : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.InsertData(
table: "Settings",
columns: new[] { "Name", "Description", "Value" },
values: new object[,]
{
{ "ScheduleExclude", "Расписание регламентной работы - Тип исключения", "Нет исключений" },
{ "ScheduleRepeatRange", "Расписание регламентной работы - Диапазн повторов", "Отсутствует дата завершения" }
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DeleteData(
table: "Settings",
keyColumn: "Name",
keyValue: "ScheduleExclude");
migrationBuilder.DeleteData(
table: "Settings",
keyColumn: "Name",
keyValue: "ScheduleRepeatRange");
}
}
}

View File

@@ -999,6 +999,24 @@ namespace PARR.DAL.Migrations
Name = "RobotWaitTime", Name = "RobotWaitTime",
Description = "Время ожидания выполнения роботом задания", Description = "Время ожидания выполнения роботом задания",
Value = "00:15:00" Value = "00:15:00"
},
new
{
Name = "ScheduleTimezone",
Description = "Расписание регламентной работы - В каком часовом поясе",
Value = "MSK"
},
new
{
Name = "ScheduleExclude",
Description = "Расписание регламентной работы - Тип исключения",
Value = "Нет исключений"
},
new
{
Name = "ScheduleRepeatRange",
Description = "Расписание регламентной работы - Диапазн повторов",
Value = "Отсутствует дата завершения"
}); });
}); });
@@ -1100,6 +1118,9 @@ namespace PARR.DAL.Migrations
.IsRequired() .IsRequired()
.HasColumnType("text"); .HasColumnType("text");
b.Property<string>("ScheduleEsppId")
.HasColumnType("text");
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ApplicationInWorkId"); b.HasIndex("ApplicationInWorkId");

View File

@@ -22,39 +22,10 @@ namespace PARR.DAL.Models
public bool IsActiveSchedule { get; set; } public bool IsActiveSchedule { get; set; }
#region удалить эти поля
/// <summary> /// <summary>
/// Статус шаблона. Что нужно сделать роботу в ЕСПП /// Номер расписания еспп
/// </summary> /// </summary>
//public int? StatusCode { get; set; } public string? ScheduleEsppId { get; set; }
/// <summary>
/// Статус работы робота
/// </summary>
//public int? RobotStatusCode { get; set; }
/// <summary>
/// Количество попыток выполнения задания роботом
/// </summary>
//public int? RobotAttemptsNumber { get; set; }
/// <summary>
/// Последняя дата обновления статуса RobotStatusCode роботом
/// </summary>
//public DateTimeOffset? RobotLastStatusUpdated { get; set; }
//[ForeignKey(nameof(StatusCode))]
//public TaskStatus? StatusTask { get; set; }
//[ForeignKey(nameof(RobotStatusCode))]
//public RobotStatus? RobotStatus { get; set; }
//public ICollection<RobotTemplateHistory> RobotTemplateHistories { get; set; } = new HashSet<RobotTemplateHistory>();
#endregion
public Guid ApplicationInWorkId { get; set; } public Guid ApplicationInWorkId { get; set; }

View File

@@ -22,5 +22,10 @@
} }
} }
] ]
},
"GlobalSettings": {
"MqSettings": {
"HostName": "10.99.253.216"
}
} }
} }

View File

@@ -35,11 +35,10 @@
}, },
"GlobalSettings": { "GlobalSettings": {
"MqSettings": { "MqSettings": {
"HostName": "10.99.253.216", "HostName": "parr_rabbit",
"QueueName": "parr-espp-templates", "QueueName": "parr-espp-templates",
"User": "espp_templates_reader", "User": "espp_templates_reader",
"Password": "P@ssReaderPtk202!" "Password": "P@ssReaderPtk202!"
}, },
"StorageSettings": { "StorageSettings": {
"CheckIntervalSeconds": 30 "CheckIntervalSeconds": 30

View File

@@ -27,7 +27,7 @@
] ]
}, },
"MqSettings": { "MqSettings": {
"HostName": "10.99.253.216", "HostName": "parr_rabbit",
"QueueName": "parr-generate-templates", "QueueName": "parr-generate-templates",
"User": "generate_templates_worker", "User": "generate_templates_worker",
"Password": "Dhgdf%d&609sssa" "Password": "Dhgdf%d&609sssa"

View File

@@ -20,6 +20,8 @@ services:
tag: parr.espp-template-sync.serilog tag: parr.espp-template-sync.serilog
deploy: deploy:
replicas: 4 replicas: 4
network:
- parr-network
parr-rabbitmq: parr-rabbitmq:
image: rabbitmq:3.12.4-management image: rabbitmq:3.12.4-management
@@ -36,6 +38,8 @@ services:
- 5672:5672 - 5672:5672
deploy: deploy:
replicas: 1 replicas: 1
network:
- parr-network
volumes: volumes:
#parr_storage_dev: #parr_storage_dev:
@@ -52,6 +56,10 @@ volumes:
o: "addr=dvgd-appfs-01.dvgd.oao.rzd,soft,rw,nfsvers=4" o: "addr=dvgd-appfs-01.dvgd.oao.rzd,soft,rw,nfsvers=4"
device: ":/nfs/dvgd-swarm-01/parr_rabbit/data" device: ":/nfs/dvgd-swarm-01/parr_rabbit/data"
networks:
parr-network:
# последняя версия # последняя версия
#docker compose -f docker-compose.espp-template-sync.yml up -d #docker compose -f docker-compose.espp-template-sync.yml up -d
# указанная версия # указанная версия

View File

@@ -13,4 +13,9 @@ services:
fluentd-address: dvgd-mng-02.dvgd.oao.rzd:24224 fluentd-address: dvgd-mng-02.dvgd.oao.rzd:24224
tag: parr.generator-templates.serilog tag: parr.generator-templates.serilog
deploy: deploy:
replicas: 1 replicas: 1
networks:
parr-network:
networks:
parr-network:

View File

@@ -21,6 +21,11 @@ services:
tag: parr.api.serilog tag: parr.api.serilog
deploy: deploy:
replicas: 2 replicas: 2
networks:
parr-network:
networks:
parr-network:
#volumes: #volumes:
#parr_storage_dev: #parr_storage_dev: