2016-10-03 100 views
3

我有后续function.json文件在Azure上的函数:定时器触发Azure的功能没有得到触发

{ 
    "bindings": [ 
     { 
      "type": "timerTrigger", 
      "direction": "in", 
      "schedule": "0 0 3 * * *", 
      "name": "myTimer" 
     } 
    ], 
    "disabled": false 
} 

除非我错了,这应该使功能来看,每日一次,在凌晨3点?

这是函数的签名:

public static async Task Run(TimerInfo myTimer, TraceWriter log) {} 

那么,什么是我做错了?当我手动触发它时(单击门户中的“运行”),该功能正常工作,但它在今天早上3点没有运行,而且也没有在昨天运行。

编辑:所以,正如所建议的,我已经将计划改为付费计划,并且我已经选择了一个动态计划。日志仍然没有提到今天早上3点激活的功能。在传统模式下运行

enter image description here

+0

我在消费(动态)计划同样的问题,但竟然是时区UTC VS混乱 - 确保你排除这一可能性。目前不可以在触发级别配置时区:https://github.com/Azure/azure-webjobs-sdk-extensions/issues/178 –

回答

3

应用要求“始终在线”启用。仔细检查这是否启用 - 这将解释它。

功能应用程序可以运行在两个计划:动态经典。您在创建应用程序时选择计划。目前还没有任何方式的应用程序创建之后切换计划:

enter image description here

  • 经典计划在App服务运行计划,就像其他的应用服务的应用程序。你可以选择免费,基本,标准等,你可以自己控制规模。如果您使用的是经典计划,则必须启用“始终开启”才能让触发器可靠地启动。这要求您的网站处于基本或标准模式。您可以通过点击“功能应用程序设置” - >“转至应用程序服务设置”,从您的功能应用程序中进行管理(并检查“始终开启”)。 “始终开启”设置位于“应用程序设置”中。

  • 动态计划通过执行收费。没有“永远在线”的概念 - 当触发器触发时,您的站点将启动(如果尚未启动)并且您的功能将运行。

在这里看到更多的细节:https://azure.microsoft.com/en-us/documentation/articles/functions-scale/#choose-a-service-plan

+0

另请参阅此相关答案:http://stackoverflow.com/questions/39430932/如何做,我打开总是在一个天蓝色的功能/ 39431332#39431332 –

+0

这可能是非常好的,只是不知道在哪里可以找到这些信息?看起来我必须切换更改应用程序服务计划,也许。 –

+0

古德点;我已经加强了我的回答。 – brettsam