From 93d1f3478647a554c52b36444c9ebfcba99a27f0 Mon Sep 17 00:00:00 2001 From: Haiping Chen Date: Wed, 29 Jan 2025 06:16:40 -0600 Subject: [PATCH] remove dependency of IEventPublisher in CrontabWatcher --- .../Services/CrontabWatcher.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Infrastructure/BotSharp.Core.Crontab/Services/CrontabWatcher.cs b/src/Infrastructure/BotSharp.Core.Crontab/Services/CrontabWatcher.cs index f936c172..59dc126b 100644 --- a/src/Infrastructure/BotSharp.Core.Crontab/Services/CrontabWatcher.cs +++ b/src/Infrastructure/BotSharp.Core.Crontab/Services/CrontabWatcher.cs @@ -46,7 +46,7 @@ public class CrontabWatcher : BackgroundService var cron = services.GetRequiredService(); var crons = await cron.GetCrontable(); - var publisher = services.GetRequiredService(); + var publisher = services.GetService(); foreach (var item in crons) { @@ -88,8 +88,16 @@ public class CrontabWatcher : BackgroundService { _logger.LogInformation($"The current time matches the cron expression {item}"); - await publisher.PublishAsync($"Crontab:{item.Title}", item.Cron); - // cron.ScheduledTimeArrived(item); + if (publisher != null) + { + await publisher.PublishAsync($"Crontab:{item.Title}", item.Cron); + } + else + { + var scope = _services.CreateScope(); + cron = scope.ServiceProvider.GetRequiredService(); + cron.ScheduledTimeArrived(item); + } } } catch (Exception ex)