0

我正在制作一个计时器触发 Azure 函数。我在这里使用一个表示 TimeToCopy 的变量。该变量必须在函数的每次迭代后更新。

我有:

[FunctionName("Function1")]
    public static void Run([TimerTrigger("0 */2 * * * *")]TimerInfo myTimer, TraceWriter log, myTimerItem elapsedTime)

我想要:

[FunctionName("Function1")]
        public static void Run([TimerTrigger("0 */2 * * * *")]TimerInfo myTimer, TraceWriter log, myTimerItem elapsedTime, double TimeToCopy)
4

1 回答 1

1

函数不能可靠地将调用之间的状态保存在内存中。

如果您可以接受数据丢失的可能性,则可以将值保存在静态变量中。

为了可靠地保存/恢复状态,您需要为您的函数添加额外的绑定,例如使用表存储。就像是:

[FunctionName("Function1")]
public static void Run([TimerTrigger("0 */2 * * * *")] TimerInfo myTimer, 
                       myTimerItem elapsedTime,
                       [Table("MyFuncState", "default", "Function1")>] StateEntity entity)
{
    // ...
    entity.TimeToCopy = entity.TimeToCopy * 2.0;
}

public class StateEntity: TableEntity
{
    public double TimeToCopy { get; set; }
}
于 2018-06-28T05:34:18.630 回答