Способ добавления триггера для задания не работает при запуске приложения. Кварц .NETC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Способ добавления триггера для задания не работает при запуске приложения. Кварц .NET

Сообщение Anonymous »

Когда приложение запускается, я настраиваю задание и запускаю его с помощью IConfigureOptions. Я использую .AddJob и .AddTrigger в методе Configuration (параметры QuartzOptions). На локальном стенде все запускается корректно. На тестовом стенде возникает ошибка: «SchedulerException: новое задание, определенное без каких-либо триггеров, должно быть устойчивым: DEFAULT.BackgroundJobTemporically».
Используемая версия: Настройка Program.cs:

Код: Выделить всё

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddQuartz();
builder.Services.AddQuartzHostedService(opt =>
{
opt.WaitForJobsToComplete = true;
});

builder.Services.ConfigureOptions();

builder.Services.AddScoped();
BackgroundJobTemporallyRefusedSetup.cs:

Код: Выделить всё

public class BackgroundJobTemporarilyRefusedSetup(
IServiceScopeFactory serviceScopeFactory) : IConfigureOptions
{
public async void Configure(QuartzOptions options)
{
var jobKeyTemporarilyRefused = BackgroundJobTemporarilyRefused.Key;

using var scope = serviceScopeFactory.CreateScope();
var backgroundProcessSettingRepository = scope.ServiceProvider.GetRequiredService();
var backgroundProcessSettingExists = await backgroundProcessSettingRepository.Exists(jobKeyTemporarilyRefused.Name);
if (!backgroundProcessSettingExists)
throw new Exception($"Can`t find setting with JobKeyName = {jobKeyTemporarilyRefused.Name}");
// Get cron expression from DB
var backgroundProcessSetting = await backgroundProcessSettingRepository
.GetBackgroundProcessSettingAppModelByJobKeyName(jobKeyTemporarilyRefused.Name);

options
.AddJob(jobBuilder => jobBuilder.WithIdentity(jobKeyTemporarilyRefused))
.AddTrigger(trigger =>
trigger
.ForJob(jobKeyTemporarilyRefused)
.WithCronSchedule(backgroundProcessSetting.CronScheduleString,
x => x.WithMisfireHandlingInstructionDoNothing()));
}
}
BackgroundJobTemporallyRefused.cs:

Код: Выделить всё

[DisallowConcurrentExecution]
public class BackgroundJobTemporarilyRefused(
IUserTemporarilyRefusedFromMeetingHandleService userTemporarilyRefusedFromMeetingHandleService,
ILogger logger) : IJob
{
public static readonly JobKey Key = JobKey.Create(nameof(BackgroundJobTemporarilyRefused));
public async Task Execute(IJobExecutionContext context)
{
try
{
await userTemporarilyRefusedFromMeetingHandleService.UserTemporarilyRefusedFromMeetingHandle();
}
catch (Exception e)
{
logger.CustomError(e);
}
}
}
При запуске приложения на тестовом стенде возникает ошибка: «SchedulerException: новое задание, определенное без каких-либо триггеров, должно быть устойчивым: DEFAULT.BackgroundJobTemporaryRefused».
Cron-выражение из БД получено корректно.
Почему триггер добавлен некорректно? Помогите пожалуйста.
Я попробовал добавить группу для триггеров:

Код: Выделить всё

.WithIdentity("Trigger", "TestGroup")
Я попробовал другой флаг в Program.cs:

Код: Выделить всё

opt.WaitForJobsToComplete = true;
opt.AwaitApplicationStarted = true;
Нет результата. Пожалуйста, помогите. Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/791 ... cation-sta
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Кварц добавить триггер для уже существующего задания
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Кварц добавить триггер для уже существующего задания
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Кварц добавить триггер для уже существующего задания
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Совместное использование триггера и триггера событий в WPF
    Гость » » в форуме C#
    0 Ответы
    40 Просмотры
    Последнее сообщение Гость
  • Как установить предыдущее время срабатывания кварцевого триггера во время создания триггера
    Anonymous » » в форуме JAVA
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»