2017-02-22 228 views
0

我有一個消費計劃的Azure功能設置,其中包含6個獨立的計時器觸發功能。Azure時間觸發功能不觸發

  • 3人開火5每隔一小時過去一小時(0 5 * * * *)
  • 其中1個在他們的午夜(0 0 0 * * *)
  • 1每晚火災上午8點(0 0 8 * *星期一)
  • ,最後一個在星期一火災應該每天早上火凌晨1點(0 0 1 * * *),但不是

他們都同一個應用程序的副本,但根據命令行參數做不同的事情。它們由包含相應命令行參數的Run.ps1 Powershell腳本觸發。

昨天09:40我試着手動運行問題函數並運行,所以我將計劃更改爲(0 0 11 * * *),並按預期在早上11點運行。所以我改變了計劃回(0 0 1 * * *),但在凌晨1點今天早上沒跑:(

enter image description here

我要去嘗試,使其運行在修改日程凌晨2點如果在凌晨1點有什麼問題導致問題,但除了我還可以嘗試其他方法嗎?

+0

我有與消費計劃/函數應用程序和Timer + EventHub觸發器相同的問題。如果應用程序不活動,則不會觸發這些觸發器。當我在App中觸發一個HttpRequest時,它會「活着」,其他觸發器會運行一段時間。建議MS支持完全刪除和重新部署功能應用程序。這有助於一段時間。我將轉向應用程序服務環境,並因此儘快制定專門的計劃,並且不會出現問題。我有其他想法:經常使用AppInsights發出一個空的Web Test/Http請求。但這些都是解決方法 - 根本原因沒有解決。 –

+0

你們是否會/公開或祕密地共享你的功能應用程序名稱(https://github.com/projectkudu/kudu/wiki/Reporting-your-site-name-without-posting-it-publicly) 。我可以挖掘日誌,看看我能否弄清楚發生了什麼。 – brettsam

+0

tht-test-function – littlecharva

回答

1

我認爲如果您的計時器已過期,您可能會遇到問題。我已在此提交問題:https://github.com/Azure/azure-webjobs-sdk-extensions/issues/194

在我翻閱的日誌中,我看到你的函數應用程序在1am之前重新啓動,這是由於對function.json文件的更改。當它恢復時,已經過了凌晨1點(本應該導致它運行),但因爲它以前從未運行過,我們不正確地重新計算了「下一個」時間。

我正在爲此尋找修復方法 - 您可以按照上面的鏈接進行操作。

如果您或@KaiWalter看到更多的缺少函數調用的實例,請告訴我,以便我可以驗證這是發生了什麼。

+0

感謝brettsam。 – littlecharva

+0

我有另一個函數沒有運行的例子:相同的帳戶,功能應用程序與m2在名稱和有問題的函數稱爲ComparisonTest。它應該在午夜運行,但日誌顯示它沒有。你能否確認這是否是由於同一問題? – littlecharva

+0

是的,它看起來是一樣的問題。感謝您的信息,這有助於確認它。 – brettsam

0

如果您的功能應用程序指定了非默認時區(使用APPSETTING_WEBSITE_TIME_ZONE),則很可能會遇到已知問題: https://github.com/Azure/azure-webjobs-sdk-script/issues/995

該問題的修復已經開始部署,部署應該按照結束完成一週。

+0

我沒有使用它,但感謝您的更新。 – littlecharva

+0

好的,但在這種情況下,請注意您的日程安排基於UTC時間。難道這就是爲什麼當你期望它不能運行嗎? –

+0

好點,但午夜的一個運行良好,並且因爲我已將它更改爲凌晨2點,它似乎工作正常。 – littlecharva