c# - 当某些代码位于方法中时,Quartz.NET 不触发

标签 c# azure quartz.net azure-worker-roles

我正在尝试在 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/

相关文章:

c# - Topshelf 需要使用 Autofac 的 Quartz 作业工厂

c# - 使用 Linq 对数据集进行分区

c# - 为什么 MouseEventArgs 在等式中使用时不起作用

javascript - 从 ASP.NET 项目中在新选项卡中打开外部链接

mongodb - 如何连接到 MongoDB 的 Azure CosmosDB 模拟器?

asp.net-mvc - Web 应用程序 ASP.NET MVC 的调度程序

c# - Json.NET 序列化私有(private)成员而不是只读属性

azure - 如何获取Azure数据工厂管道的静态IP?

azure - 获取每个用户的工作项字段的总统计信息

c# - asp.net中调度任务的方法(不用写windows scheduler)