私のapi(c#)では、私は現在、多くのリクエスト(15-20秒)に答えています。今私はいくつかの目的のためにイベントハブにデータを送信したい。しかし、私は紺碧のイベントハブにデータを送信するためにユーザーを遅らせたいとは思わない。だから私はイベントのハブbeacuseに非同期要求をする必要があります私のアプリは、私は答えを待っているユーザーを取得したいazureにデータを送信しています。私はできるだけ早く応答を送る必要があり、紺碧は2〜3秒続くことがあります。async azureイベントハブデータメソッドを送信します。
どのように成功することができますか? 私は何かをしたが、私が望むものを得られなかった。私のコード:
public static async Task<string> SendEvents(List<object> messages)
{
string eventHubName = "rcmds";
var connectionString = GetServiceBusConnectionString();
CreateEventHub(eventHubName, connectionString);
var eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, eventHubName);
try
{
List<Task> tasks = new List<Task>();
for (int i = 0; i < messages.Count; i++)
{
var serializedMessage = JsonConvert.SerializeObject(messages[i]);
EventData data = new EventData(Encoding.UTF8.GetBytes(serializedMessage));
// Mesajları Event Hub a yolla
tasks.Add(eventHubClient.SendAsync(data));
}
Task.WaitAll(tasks.ToArray());
System.Threading.Thread.Sleep(7000);
}
catch (Exception ex)
{
new ExceptionHandler(ex, "Event Hub Library Sender - SendEvents");
}
finally
{
eventHubClient.CloseAsync().Wait();
}
return "";
}
と私の好きなこのメソッドを呼び出す:あなたが見ることができるように
static async void method()
{
List<object> list = new List<object>();
list.Add("dogrudur");
await Utilities.EventHub.Sender.SendEvents(list);
}
、 "thread.sleed" コードがありますが、私は7秒待っていた:私は思う/