【问题标题】:Azure Timer Trigger webjob: Function is being recognised but not being triggeredAzure Timer Trigger webjob:功能正在被识别但未被触发
【发布时间】:2017-08-23 13:38:50
【问题描述】:

我有一个 Azure 计时器触发器 webjob,部署在两个不同的环境中,有两个不同的存储帐户。 Webjobs 已经部署了大约两个月,并且按预期运行了相当长的一段时间。但是,大约一个星期以来,该功能正在被识别但没有被执行。

以下是日志的外观:

Found the following functions:
ADFSchedulerWebJob.Functions.ProcessTimerMessage
Job host started

Job 主机启动后没有任何反应,即没有调用/执行函数 ProcessTimerMessage。这是函数的外观:

public static void ProcessTimerMessage([TimerTrigger("0 */2 * * * *", RunOnStartup = true)] TimerInfo info, TextWriter log)
    {
        //function logic
    }

Main 方法如下所示:

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

即使我尝试在本地调试 webjob,也会发生同样的情况。可能的原因/解决方案是什么?

任何帮助表示赞赏。

【问题讨论】:

  • 你能给我们看一些(相关的)代码吗?主要对 TimerTrigger cron 表达式感兴趣。
  • 编辑问题以包含包含 TimerTrigger CRON 表达式的函数签名。
  • 在main方法中添加config.UseTimers();了吗?
  • 是的,在上面的问题中添加了main方法以供参考。
  • 您是否将同一个存储帐户用于另一个网络作业或另一个环境?看看这个问题:stackoverflow.com/questions/40296109/…

标签: azure azure-webjobs timer-trigger


【解决方案1】:

可能的原因/解决办法是什么?

正如 Thoms 提到的,同一个存储帐户似乎用于另一个或其他网络作业。

我们可以通过以下方式进行调试:

1.尝试使用另一个存储帐户

2.查看存储中的webjob日志

我们可以从blog获得更多关于 Webjob 日志的信息。

【讨论】:

  • 原来这是问题所在。尽管我已经注意使配置从密钥共享中读取值,但密钥共享本身中的密钥具有不正确的值。两种环境中的密钥都设置为相同的存储帐户,因此存在问题。感谢您的帮助。
猜你喜欢
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多