首页 > 解决方案 > 如何设置服务器在长时间不活动后启动 cron

问题描述

我的项目是在 .NET5 环境中制作的 示例:我使用 Cron 和任务发送电子邮件设置了 Quartz.NET 时间表,一切都在短时间内完成。在测试服务器上,我设置了一天的间隔 - 最终它将是每周一次。此外,我使用设置配置了连接到项目的池。不幸的是,Cron 没有在第二天启动 - 在服务器上您还应该注意什么?

q.AddJob<SendEmailQualityControlJob>(opts => opts.WithIdentity(jobKey));
                      
                          // Create a trigger for the job
                          q.AddTrigger(opts => opts
                       
                        .WithIdentity("SendEmailQualityControlJob-trigger").WithCronSchedule("00 00 10 ? * WED ").ForJob(jobKey).StartNow());

根据以下建议:

https://newbedev.com/quartz-net-scheduler-doesn-t-fire-jobs-triggers-once-deployed

https://www.py4u.net/discuss/1170832

启动模式:AlwaysRunning 限制间隔(分钟):0 常规时间间隔(分钟):0

服务器上的服务在 50 分钟后被取消

2021-09-15 14:24:50.6055||INFO|Microsoft.Hosting.Lifetime|应用程序正在关闭... 2021-09-15 14:24:50.6055||INFO|Quartz.Core.QuartzScheduler|调度程序 QuartzScheduler_$ NON_CLUSTERED 正在关闭。2021-09-15 14:24:50.6198||INFO|Quartz.Core.QuartzScheduler|Scheduler QuartzScheduler $ NON_CLUSTERED 暂停。2021-09-15 14:24:50.6198||INFO|Quartz.Core.QuartzScheduler|调度程序 QuartzScheduler$_NON_CLUSTERED 关机完成。2021-09-15 14:24:50.6346||INFO|AppForSellers.Infrastructure.QuartzNET.Service.SendEmailQualityControlServiceHostService|Usługa SendEmailQualityControlServiceHostService została zatrzymana。2021-09-15 14:24:50.8126||错误|AppForSellers.Infrastructure.QuartzNET.SendEmailQualityControlJob|没有发送电子邮件 System.Threading.Tasks.TaskCanceledException:任务被取消。在 C:\Projekty\TLC Spiral Stairs\AppForSellers\Infrastructure\QuartzNET\Service\SendEmailQualityControl.cs: 158 行中的 AppForSellers.Infrastructure.QuartzNET.Service.SendEmailQualityControl.ExecuteJobSendEmail(CancellationToken stoppingToken)

标签: .nettriggerscron.net-5quartz.net

解决方案


推荐阅读