我目前遇到Azure函数调用的问题。
当我第一次调用AF(长时间不使用之后)时,它几乎立即开始执行代码。但是,如果在完成后几秒钟调用同一函数,则从启动到执行代码之间需要10到15秒的时间。 (每次重复操作的结果都保持不变:1次调用-非常快,其他所有调用均等待时间。)
[FunctionName("GetUserDestinationsList")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(Settings.DefaultAuthorization, "get", Route = null)]HttpRequestMessage req, TraceWriter log)
{
try
{
log.Info($"Start Execute function");
var allDestinations = await DestinationsFactory.GetAllDestinations();
IEnumerable<KeyValuePair<string, string>> values = req.GetQueryNameValuePairs();
...
}
我记录了代码执行的开始。 这里是调用的结果:
- 该函数的首次调用:
2018-11-22 08:24:30.517-功能已启动(Id = c86f9b71-03ed -...)
2018-11-22 08:24:30.955-启动执行功能
2018-11-22 08:24:39.600-功能已完成(成功,ID = c86f9b71-03ed -...,持续时间= 9062ms)
- 第二通电话:
2018-11-22 08:24:44.482-功能已启动(Id = 12eb3f0e-a180 -...)
2018-11-22 08:24:53.489-启动执行功能
2018-11-22 08:24:58.534-功能已完成(成功,ID = 12eb3f0e-a180 -...,持续时间= 14047ms)
- 第三通电话:
2018-11-22 08:25:04.479-功能已启动(Id = 30784cc2-d2de -...)
2018-11-22 08:25:17.985-启动执行功能
2018-11-22 08:25:22.856-功能已完成(成功,Id = 30784cc2-d2de -...,持续时间= 18381ms)
如您所见,第二个和第三个呼叫有一些等待时间。
三个调用使用相同的参数并在结束时返回相同的结果,只有开始需要更多或更少的时间。
我也可以在本地重现此问题。
有什么想法吗?
编辑: 如果我在每次通话之间等待约20秒,则没有更多延迟。它们似乎仅在呼叫彼此接近时才会发生。