我正在尝试在 Azure 辅助角色中设置 Quartz.NET 来安排每日事件。经过多次试验和错误,我发现在目标方法中包含一行代码会导致事件根本不被触发
建立Quartz.NET example ,我有一个 IJob 类,它覆盖了 Execute 方法(使用调度程序和触发器注册)。
当有问题的行(已注释)被删除时,我可以在 Trace.WriteLine 语句上命中断点。有了它,断点就永远不会被命中,并且输出不会出现在其他地方。
代码:
public class MyUpdaterJob : IJob
{
public MyUpdaterJob()
{
}
public void Execute(JobExecutionContext context)
{
Trace.WriteLine("-- Yay - Job called");
// Removing this line will result in the breakpoint above being able to be hit
MyUpdateWorker updateWorker = new MyUpdateWorker();
var logDate = context.FireTimeUtc.Value.AddHours(-1);
// [...]
}
}
我对它可能正在评估什么导致它不触发此事件感到非常困惑。有什么建议吗?
- “MyUpdateWorker”位于另一个库中
- 当前正在作为 Azure 辅助角色运行
最佳答案
我想我应该检查 MyUpdateWorker() 类的构造函数,看看是否一切正常,也许在诊断日志中记录一个日志,看看是否可以在其中指出原因。通常我会看到 Azure 上缺少库的问题,因此可能缺少依赖项。
只需检查几件事(今天早上只喝了两杯咖啡,所以我还在热身中)
关于c# - 当某些代码位于方法中时,Quartz.NET 不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8868989/