我已经在.NET中安排了cron Job,并且在IIS中托管了该任务。在它触发的第一天(出于测试目的,我实际上在触发此作业时发送邮件)。但是第二天还没有(我希望每天进行递归……每24小时一次)请在下面找到代码。[![在此处输入图片描述] [1]] [1]
public class JobScheduler
{
public static void Start()
{
try
{
Logger.Error("-------------------------------------------Inside JobScheduler Start-------------------------------------------");
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.Start();
IJobDetail job = JobBuilder.Create<QualityGateSFDCActionJob>().Build();
ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger3", "group1").WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(11, 42)).ForJob(job).Build();
scheduler.ScheduleJob(job, trigger);
Logger.Error("-------------------------------------------Scheduler Started without Issues-------------------------------------------");
}
catch (Exception ex)
{
Logger.Error(ex.Message);
throw ex;
}
}
}
Run Code Online (Sandbox Code Playgroud)
一些对此的帮助。
ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger3", "group1").WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(11, 42)).ForJob(job).Build();
Run Code Online (Sandbox Code Playgroud)
我只希望这项工作每天早上11:42运行。非常感谢您在这方面的帮助
应用程序基于ASP.NET MVC构建,并托管在IIS上。我希望每天运行一份作业,这就是为什么我选择Cron Job(Windows服务在生产服务器中不在上下文/范围内)的原因
IIS具有称为“回收”的功能。基本上,这将重新加载IIS中的所有内容。
如果您在IIS管理器中进入“应用程序池”的“高级设置”,则存在一个“回收间隔”,默认为1740分钟(29小时)
当IIS回收时,您的应用程序将在某些调用Web服务之前开始运行。因此,它每29小时就会循环一次,因此,取决于您启动Web服务的时间,它将运行您的Cron作业一次或两次,但绝不会第3次运行,除非您在回收之后调用了Web服务以重新启动它。
基本上,IIS并不是托管需要始终运行作业的应用程序的好地方。
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |