asp.net - Quartz.NET 触发器未触发

标签 asp.net automation scheduling quartz.net

我在 ASP.NET Web 应用程序中使用 Quartz.NET。我将以下代码放入按钮单击处理程序中,以确保它执行(用于测试目的):

Quartz.ISchedulerFactory factory = new Quartz.Impl.StdSchedulerFactory();
Quartz.IScheduler scheduler = factory.GetScheduler();
Quartz.JobDetail job = new Quartz.JobDetail("job", null, typeof(BackupJob));
Quartz.Trigger trigger = Quartz.TriggerUtils.MakeDailyTrigger(8, 30); // i edit this each time before compilation (for testing purposes)
trigger.StartTimeUtc = Quartz.TriggerUtils.GetEvenSecondDate(DateTime.UtcNow);
trigger.Name = "trigger";
scheduler.ScheduleJob(job, trigger);
scheduler.Start();

这是“BackupJob”:

public class BackupJob : IJob
{
    public BackupJob()
    {
    }

    public void Execute(JobExecutionContext context)
    {
        NSG.BackupJobStart();
    }
}

我的问题:为什么“BackupJobStart()”没有触发?我以前使用过类似的代码,效果很好。

编辑:@Andy White,我会将其放在 Global.asax 的 Application_Start 中。这不起作用,这就是为什么我将其移至按钮单击处理程序以缩小问题范围。

最佳答案

您是否连接了 Quartz.NET 日志记录?我曾经遇到过一个作业无法执行的问题(我忘记了原因),但是一旦我开始使用 Quartz.NET 日志记录,问题就很明显了。

值得一试(如果您还没有这样做):

更新:只需将其添加到您的program.cs即可启用控制台日志记录:

Common.Logging.LogManager.Adapter = new Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter { Level = Common.Logging.LogLevel.Info};

关于asp.net - Quartz.NET 触发器未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/680474/

相关文章:

javascript - Selenium IDE : How to select next available date from datepicker

excel - 自动化 Excel 时如何将文本框对象放置在特定单元格上?

mysql - 我应该如何对事件持续时间进行建模

java - 如何计算工厂全年每个白类和夜类有多少员工 "on call"?

c# - 运行时的显式运算符转换

javascript - Asp.Net 中控件的验证提示

c# - .net 访问表单例份验证 "timeout"代码中的值

asp.net - 在 Visual Studio Web Developer Express 2010 中测试

internet-explorer - 损坏的IE对象(带有Powershell的IE自动化)

php - 计划在PHP/MySQL中使用模板和替代内容进行搜索