1

複数の API エンドポイントからの結果を待たずに呼び出すことができる Azure 関数があります。

Azure 関数はタイマー トリガーで実行され、10 秒ごとに実行されます。

すべての API 呼び出しとそれらを呼び出すためのパラメーターは、SQL テーブルに格納されます。特定の呼び出しが完了するのを待たずに API 呼び出しが行われるようにしたいと考えています。

これは、私がやろうとしていることの単なる青写真です。

[FunctionName("FunctionScheduler")]
public static async Task RunAsync([TimerTrigger("*/10 * * * * *")]TimerInfo myTimer, ILogger log)
{
    log.LogInformation("FUNCTION SCHEDULER STARTING ..");

    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

    for(int i=0; i < 20; i++)
    {
        var task = Task.Run(() => ApiRef1(i, log));
        var taskref = await task;
    }

}

現在、ApiRef1() は単に変数 i の値を出力します。0 から 19 までの数字を出力する期待される出力が得られます。ApiRef1() メソッドの並列実行が必要ですが、最終的にはこのようなメソッドに置き換えられます。

private static void CallApi(string apiName, string apiEndpoint, string methodType, string authenticationType, IDictionary<int, string> parameters, ILogger log)
{
    try
    {
        log.LogInformation($"Call to API {apiName} started.." );

        // Call API
    }
    catch (Exception ex)
    {
        log.LogInformation($"Exception {ex.Message} occurred.." );
    }
}

これを行うためのより良い方法はありますか、またはこの方法は機能しますか?

4

3 に答える 3