Azure functions 如何使逻辑应用程序的多个实例运行?

Azure functions 如何使逻辑应用程序的多个实例运行?,azure-functions,azure-logic-apps,Azure Functions,Azure Logic Apps,我一直在使用一个由URL触发的逻辑应用程序 我正在使用一个基于计时器的azure函数,并通过PostAsync调用调用此逻辑应用程序 一个函数实例在特定时间可以使用不同的ID执行多个PostAsync 我面临的问题是: 每当我的函数使用不同的ID进行多个PostAsync调用时,理想情况下,logic应用程序应该针对这些多个ID运行多个实例。但它会按顺序接听这些电话。它将完成一个实例,然后为下一个ID创建一个新实例,依此类推 但如果在几秒钟后有另一个函数实例运行,它将接受它的请求,并与第一个实例

我一直在使用一个由URL触发的逻辑应用程序

我正在使用一个基于计时器的azure函数,并通过PostAsync调用调用此逻辑应用程序

一个函数实例在特定时间可以使用不同的ID执行多个PostAsync

我面临的问题是: 每当我的函数使用不同的ID进行多个PostAsync调用时,理想情况下,logic应用程序应该针对这些多个ID运行多个实例。但它会按顺序接听这些电话。它将完成一个实例,然后为下一个ID创建一个新实例,依此类推

但如果在几秒钟后有另一个函数实例运行,它将接受它的请求,并与第一个实例同时处理它们(一次处理一个类似于第一个实例)

我想要的是,无论函数weather的实例是否相同,logic app都应该为PostAsync调用创建多个实例


PS:默认情况下,我的逻辑应用程序配置为以并行模式工作。

我在我的系统中对其进行了测试,并且工作正常,因此我将我的逻辑应用程序和azure函数发布在此处供您参考

我创建了一个logic应用程序,它只包含两个操作,如下屏幕截图所示:

然后在我的azure function app中创建一个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);
    });
}
#r“Newtonsoft.Json”
Net系统;
使用Microsoft.AspNetCore.Mvc;
使用Microsoft.Extensions.Primitives;
使用Newtonsoft.Json;
使用系统线程;
使用System.Net.Http;
公共静态异步任务运行(HttpRequest请求,ILogger日志)
{
LogInformation(“C#HTTP触发器函数处理了一个请求。”);
请求1(日志);
请求2(日志);
返回(ActionResult)新的OkObjectResult($“Hello world”);
}
公共静态异步void request1(ILogger日志)
{
等待任务。运行(()=>
{
登录信息(“do request111”);
HttpClient=新的HttpClient();
var response=client.PostAsync(“http…”,null);
});
}
公共静态异步void request2(ILogger日志)
{
等待任务。运行(()=>
{
登录信息(“do request222”);
HttpClient=新的HttpClient();
var response=client.PostAsync(“http…”,null);
});
}
上面的函数包括两个请求逻辑应用触发器的请求,运行此函数,我们可以在Azure portal上的“运行历史”列表中看到两个逻辑应用实例同时运行。


希望对您的问题有所帮助~

尝试这种方法。但无法获得并发性:(嗨@MaulikModi,你能分享一下你函数中的代码吗?