На Производственном сервере у меня есть работа с электронной почтой каждые 3 часа.
Но он будет отправлять клиенту n раз по электронной почте каждые 3 часа.(т.е. от 4 до 5 раз каждый раз)
Он отлично работает на локальном компьютере.
У меня есть Azure Server.После обновления до последней версии эта проблема появляется в картине.прежде чем он работает нормально.
Версия: 3.0.7
public static class JobSchedulerService
{
public static async System.Threading.Tasks.Task StopAsync()
{
var scheduler = await StdSchedulerFactory.GetDefaultScheduler();
await scheduler.UnscheduleJob(new TriggerKey("HourlyBookingAlert", "HourlyBookingAlertGroup"));
await scheduler.DeleteJob(new JobKey("HourlyBookingAlertJob", "HourlyBookingAlertJobGroup"));
await scheduler.Clear();
await scheduler.UnscheduleJob(new TriggerKey("BookingAlert", "BookingAlertGroup"));
await scheduler.DeleteJob(new JobKey("BookingAlertJobs", "BookingAlertJobGroups"));
await scheduler.Clear();
}
public static async System.Threading.Tasks.Task StartAsync()
{
await StopAsync();
if (true)
{
var scheduler =await StdSchedulerFactory.GetDefaultScheduler();
await scheduler.Start();
var job =
JobBuilder.Create<EmailJob>()
.WithIdentity("HourlyBookingAlertJob", "HourlyBookingAlertJobGroup")
.Build();
var trigger = TriggerBuilder.Create().WithIdentity("HourlyBookingAlert", "HourlyBookingAlertGroup")
.WithDailyTimeIntervalSchedule
(s =>
s.WithIntervalInMinutes(
Convert.ToInt16(
SettingStorage.AdminSettings.AppSettings[RcomAdminSetting.AppSettingTypes.HourlyBookingCheckRequiredbyEveryMinute]))
.OnEveryDay().InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"))
.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 5))
)
.Build();
await scheduler.ScheduleJob(job, trigger);
//await Task.Delay(TimeSpan.FromSeconds(60));
// await scheduler.Shutdown();
}
if (true)
{
var scheduler2 = await StdSchedulerFactory.GetDefaultScheduler();
await scheduler2.Start();
var bookingAlertjob =
JobBuilder.Create<BookingAlert>()
.WithIdentity("BookingAlertJobs", "BookingAlertJobGroups")
.Build();
var bookingAlertTrigger = TriggerBuilder.Create().WithIdentity("BookingAlert", "BookingAlertGroup")
.WithDailyTimeIntervalSchedule
(s =>
s.WithIntervalInMinutes(
Convert.ToInt16(
SettingStorage.AdminSettings.AppSettings[RcomAdminSetting.AppSettingTypes.BookingStatusAlertRequiredbyEveryMinute]))
.OnEveryDay().InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"))
.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 5)).WithRepeatCount(0)
)
.Build();
await scheduler2.ScheduleJob(bookingAlertjob, bookingAlertTrigger);
//await Task.Delay(TimeSpan.FromSeconds(60));
//await scheduler2.Shutdown();
}
}
}