【问题标题】:Azure Web Job Timmer trigger exceptionAzure Webjob Timer 触发异常
【发布时间】:2016-09-05 14:30:02
【问题描述】:

我正在尝试使用 azure-webjobs-sdk-extensions (https://github.com/Azure/azure-webjobs-sdk-extensions) 运行触发的 azure Web 作业

JobHostConfiguration config = new JobHostConfiguration();
config.UseTimers();

JobHost host = new JobHost(config);
host.Call(typeof(Functions).GetMethod("CronJob"));
host.RunAndBlock();

public static void CronJob([TimerTrigger("0 */5 * * * *")] TimerInfo timer)
{
    Console.WriteLine("Cron job fired!");
}

但我遇到了这个异常。

Microsoft.Azure.WebJobs.Host System.ObjectDisposedException

我也尝试从该 gitbug 存储库下载示例项目,但即使使用那些 TimerTrigger 示例,我也会遇到相同的异常。

有什么想法吗? 谢谢

【问题讨论】:

  • 你使用的是哪个版本的sdk?
  • 最新版本。 1.0.1 我是通过 nuget 安装的,但没有指定版本,所以我认为它采用了最新的稳定版本(我还原了代码,所以我不能 100% 确定)
  • 你能评论这行host.Call(typeof(Functions).GetMethod("CronJob"));吗?你不需要它。你能看看这个答案并告诉我它是否有效stackoverflow.com/a/34235136/4167200
  • 是的。这似乎是问题的一部分,尽管我记得尝试过。更改了一些版本的 nugets,现在可以使用了

标签: azure azure-webjobs


【解决方案1】:

host.Call(typeof(Functions).GetMethod("CronJob"));

请注意,您应该为CronJob 函数提供TimerInfo 参数。 CronJob 函数由您定义的TimeTrigger 自动调用。如果你想在调用host.RunAndBlock()之前调用CronJob函数,可以参考如下代码:

host.Call(typeof(Functions).GetMethod("CronJob"),new { timerInfo = new TimerInfo(null, null) });

但我得到了这个异常。Microsoft.Azure.WebJobs.Host System.ObjectDisposedException

根据你的描述,我从你提到的GitHub上下载了示例项目,发现相关包的版本是旧的。请按照tutorial创建一个Azure WebJob项目并安装Microsoft.Azure.WebJobsMicrosoft.Azure.WebJobs.Extensions的最新版本包,然后测试你的TimeTrigger函数。

【讨论】:

  • 谢谢。我现在就试试看。我会让你知道它是否有效:)
  • 嗯 .. 它奏效了。我使用了 Microsoft.Azure.WebJobs 版本 1.1.0 和 Extensions 1.0.1.0,我没有显式调用该方法。也许我昨​​天错过了什么,谁知道呢。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2018-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-11
  • 1970-01-01
相关资源
最近更新 更多