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