我正在制作一个计时器触发器Azure Function。我在这里使用一个变量来指示 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)
最佳答案
函数无法可靠地将调用之间的状态保存在内存中。
如果您可以接受数据丢失的可能性,您可以将该值保留在静态变量中。
为了可靠地保存/恢复状态,您需要向您的函数添加额外的绑定(bind),例如利用表存储。像这样的东西:
[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; }
}
关于azure - 是否可以在计时器触发器Azure函数中传递 double 变量作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51074146/