【问题标题】:Quartz.NET job instance created but execute never calledQuartz.NET 作业实例已创建但从未调用过
【发布时间】:2015-01-30 05:50:34
【问题描述】:

我正在使用 2.2.4.400 的 http://www.quartz-scheduler.net/。它在其他项目中成功运行,但在这个新项目中却没有:

如果我在类的构造函数中放置一个断点:

public class EmailQueueProcessJob : IJob

它被命中了,但是执行永远不会被调用。我在顶部放置了一个断点:

public void Execute(IJobExecutionContext aContext)
{
}

查看数据库,我可以看到正在创建的作业,它们被认为是“正在执行”,但从未调用过我的 Execute 方法。

构造函数中没有代码,但显然必须有异常或某处发生的事情来阻止执行。关于如何追踪此问题的任何想法?

【问题讨论】:

    标签: c# asp.net quartz-scheduler


    【解决方案1】:

    解决方案最终是配置通用日志记录,然后看看出了什么问题。以下将登录到 VS 中的跟踪窗口。就我而言,IJob 构造函数之一中存在异常。

    using colAlias = Common.Logging;
    
    //Setup logging
    colAlias.LogManager.Adapter = new colAlias.Simple.TraceLoggerFactoryAdapter { Level = colAlias.LogLevel.Info };
    

    【讨论】:

    • 是的,但是您没有提到出了什么问题,只是您添加了日志记录以解决问题。因此,虽然这可能会引导您找到解决方案,但它肯定不是问题的解决方案,我发现自己需要一个实际的解决方案。
    • 你的日志输出告诉你什么?在我的情况下,我有一个没有被困住的低级异常。
    • 这里也一样,当我错的时候必须承认。日志是唯一的解决方案! Quartz 会抑制错误,因此您必须启用日志记录功能才能找出问题所在。为你 +1 投票。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多