是否可以在计时器触发器Azure函数中将双精度变量作为参数传递?

时间:2018-06-28 03:13:11

标签: azure azure-functions timer-trigger

我正在使计时器触发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)

1 个答案:

答案 0 :(得分: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; }
}