我是azure web jobs的新手。我正在使用azure扩展和核心版本2.0.0。我正在使用this git repo,我理解使用的是nigets的beta版本。目前我在本地机器上以调试模式运行应用程序。我创建了一个使用TimerTrigger每分钟运行的函数。代码如下,
static void Main()
{
var config = new JobHostConfiguration();
config.UseTimers();
config.Tracing.ConsoleLevel = System.Diagnostics.TraceLevel.Verbose;
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
var host = new JobHost();
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
[NoAutomaticTrigger]
public static void TimerTrig([TimerTrigger("0 * * * * *", RunOnStartup = true)] TimerInfo timer)
{
Console.WriteLine("Triggered");
}
我的问题是, - 我在网上看到的示例都没有使用[NoAutomaticTrigger]属性。但如果我不使用它,作业主机就无法找到该功能本身。 - 该功能未触发。我已经在cron表示法中使用了设置时间,运行start up = true,使跟踪控制台级别变为详细。
我错过了什么?
答案 0 :(得分:3)
尝试将配置作为参数传递给作业主机构造函数。
var host = new JobHost(config);
答案 1 :(得分:0)
因为谷歌将此作为对计时器不触发原因的第一反应......
如果您已将项目创建为 Azure Web 作业类型,Visual Studio 会生成一个 Functions 类。如果该类存在,则 Azure 将仅从该类加载 TimerTrigger 和服务总线函数。
没有它,Azure 将识别来自其他位置的功能。