我一直在使用URL触发的Logic应用。
我正在使用基于计时器的azure函数,并通过PostAsync Call调用此逻辑应用程序。
在某个特定时间,一个功能实例可以用不同的ID进行多个PostAsync。
我面临的问题是: 每当我的函数使用不同的ID进行多个PostAsync调用时,理想情况下,逻辑应用应针对多个ID分别运行其多个实例。但这是按顺序接听这些电话的。它会完成一个实例,然后为下一个ID创建一个新实例,依此类推。
但是如果几秒钟后有另一个函数实例在运行,它将接受请求并与第一个实例同时处理它们(一次类似于第一个实例)。
我想要的是,不管函数的实例是否相同,逻辑应用程序都应该为PostAsync调用创建多个实例。
PS:默认情况下,我的逻辑应用程序配置为在并行模式下工作。
答案 0 :(得分:0)
我在我这边对其进行了测试,并且效果很好,因此我在此处发布了我的逻辑应用程序和azure函数供您参考。
然后我在azure函数应用程序中创建一个Httptrigger函数,代码如下所示:
#r "Newtonsoft.Json"
using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using System.Threading;
using System.Net.Http;
public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
request1(log);
request2(log);
return (ActionResult)new OkObjectResult($"Hello world");
}
public static async void request1(ILogger log)
{
await Task.Run(() =>
{
log.LogInformation("do request111");
HttpClient client = new HttpClient();
var response = client.PostAsync("http......", null);
});
}
public static async void request2(ILogger log)
{
await Task.Run(() =>
{
log.LogInformation("do request222");
HttpClient client = new HttpClient();
var response = client.PostAsync("http......", null);
});
}
上面的函数包括两个请求逻辑应用程序触发器的请求,并运行此函数,我们可以在Azure门户的“运行历史记录”列表中看到两个逻辑应用程序实例正在同时运行。
希望对您的问题有帮助〜