【问题标题】:Azure WebJobs TimerTrigger not triggeringAzure WebJobs TimerTrigger 未触发
【发布时间】:2016-04-12 11:16:39
【问题描述】:

我正在尝试将 WebJob 作为控制台应用程序运行,当我添加 RunOnStartup = true 时它可以工作,但我需要它只与 TimerTrigger 一起工作。

这是我的代码

public static void Main()
{
  JobHostConfiguration config = new JobHostConfiguration();
  config.UseTimers();
  JobHost host = new JobHost(config);
  host.RunAndBlock();
} 

public static void TimerJob([TimerTrigger("0 0 8 * * *")] TimerInfo timerInfo)
{
    Console.WriteLine("Job Work");
}

我需要什么才能使这段代码正常工作?

【问题讨论】:

  • 什么不具体?您已经设置了每天早上 8 点运行一次的计划,所以可能还不是早上 8 点?建议在本地打开详细日志记录 - JobHost 将在启动时将执行计划打印到控制台,以便您查看下次运行的时间。
  • 您可以通过config.Tracing.ConsoleLevel开启详细控制台日志记录
  • 我添加了 config.Tracing.ConsoleLevel = System.Diagnostics.TraceLevel.Verbose; 它返回:“计划的下 5 次出现将是:1/8/2016 8:00:00 PM”但是该方法从未运行
  • 对不起,返回“计划的下 5 次出现将是:1/8/2016 8:00:00 AM”

标签: azure azure-webjobs azure-webjobssdk


【解决方案1】:

首先,按照here in the Local Development section 的描述添加JobHostConfiguration Tracing。否则您将看不到控制台文本。如果你在本地运行,你也可以随时设置断点。

还请记住,TimerTrigger 在 Azure 上运行时使用 Web 应用时区,在本地运行时使用您的计算机时区。要定义 Web App 时区,请关注these steps

【讨论】:

    【解决方案2】:

    此行为是由于TimerTrigger 中的一个问题已在现在在 Nuget 上发布的 v1.0.1 版本中修复

    问题是我们在安排事件时在内部使用 UTC 时间,而不是您所期望的 本地时间。虽然这可能会在本地运行时造成混乱,但您的作业仍会在 Azure 中按计划正确运行。

    不过,这个问题现在已经解决了。

    【讨论】:

    • 我正在使用 v1.0.1 但我仍然遇到同样的问题,我有印度时间,在 Azure 中,我们有瑞士时间。
    • 如果您遇到问题,我建议您在我们的 repo here 中记录一个错误,并提供完整的重现详细信息。您也可以尝试迁移到 v1.1.2 甚至是我们最新的 Beta2 预发布版本,所有这些都包含大量错误修复。
    【解决方案3】:

    这可能不是您特定问题的答案,但它回答了相同的问题。我注意到它不会在 Program 类中找到 TimerTrigger 函数。运行它时,我只是得到 ​​p>

    已应用开发设置

    未找到工作职能。尝试公开您的工作类别和方法。如果您正在使用绑定扩展(例如 ServiceBus、Timers 等),请确保您已在启动代码中调用了扩展的注册方法(例如 config.UseServiceBus()、config.UseTimers() 等.).

    作业主机已启动

    将它们放入 Function 类后触发就好了。

    【讨论】:

    • 这个答案实际上并没有解决最初的问题,尽管它引导我了解我的触发器没有执行的原因。如果你想在那里定义你的函数,程序类必须是公开的。默认情况下,如果您只是创建新的控制台应用程序,则 Program 类是私有的...
    猜你喜欢
    • 2021-12-05
    • 2014-12-12
    • 1970-01-01
    • 2021-07-16
    • 2021-12-26
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多