PEOL-187 hotfix System object Disposed Exception: Cannot access a disposed object

This commit is contained in:
nick.yi 2025-04-17 15:25:24 +08:00
parent 0c551b1783
commit 2cb805cf70
2 changed files with 16 additions and 9 deletions

View file

@ -40,15 +40,17 @@ public class CrontabEventSubscription : BackgroundService
"Crontab",
port: 0,
priorityEnabled: false,
async (sender, args) =>
{
var scope = _services.CreateScope();
cron = scope.ServiceProvider.GetRequiredService<ICrontabService>();
await cron.ScheduledTimeArrived(item);
},
async (sender, args) => await HandleCrontabEvent(item),
stoppingToken: stoppingToken);
});
}
}
}
private async Task HandleCrontabEvent(CrontabItem item)
{
using var scope = _services.CreateScope();
var cron = scope.ServiceProvider.GetRequiredService<ICrontabService>();
await cron.ScheduledTimeArrived(item);
}
}

View file

@ -93,9 +93,7 @@ public class CrontabWatcher : BackgroundService
}
else
{
var scope = _services.CreateScope();
cron = scope.ServiceProvider.GetRequiredService<ICrontabService>();
cron.ScheduledTimeArrived(item);
await HandleCrontabEvent(item);
}
}
}
@ -107,6 +105,13 @@ public class CrontabWatcher : BackgroundService
}
}
private async Task HandleCrontabEvent(CrontabItem item)
{
using var scope = _services.CreateScope();
var cron = scope.ServiceProvider.GetRequiredService<ICrontabService>();
await cron.ScheduledTimeArrived(item);
}
private DateTime GetLastOccurrence(CrontabSchedule schedule)
{
var nextOccurrence = schedule.GetNextOccurrence(DateTime.UtcNow);