获取Azure函数的最后2次运行时间

时间:2017-06-14 21:48:31

标签: azure azure-functions

我使用定时器触发的Azure功能每隔X分钟从数据库移动数据。为此,我想访问最后两个运行时并使用它来确定我的数据库查询范围,这样我就可以获得从SecondLastRunTime到LastRunTime的所有日志。假设我每隔X分钟运行一次计时器,这应该给我所有日志。

如何访问此信息?另外,有关处理计时器故障的任何建议吗?

1 个答案:

答案 0 :(得分:0)

TimerTrigger无法自动获取这些详细信息。

但是,每当函数运行时,您都应该能够使用输出绑定将这些详细信息写入表存储或DocDb或(任何其他存储类型)。然后,您可以使用输入绑定在触发器触发时自动加载数据。

这是一个可能有用的表输入/输出绑定的链接:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-table

TimerTrigger失败的一种方法是让触发函数执行非常少的工作,而是将一些上下文写入Queue消息(可能是它触发时的时间戳?)。然后,单独的QueueTrigger函数可以对该消息起作用。关于这一点的好处是QueueTrigger执行自动重试(默认情况下最多5次)并存储在“毒药”队列中失败的任何内容供您稍后评估。它还有助于以(a)它们是幂等的方式编写函数:如果你连续多次运行它,你会得到相同的结果;(b)函数可以处理上一次运行失败的情况:这可能意味着清理失败的处理或忽略它,以便以后可以手动清理。