Я написал C # Job, чтобы построчно читать из IIS, создавать JSON и отправлять данные в DB. Job читает 45 тыс. Строк, а операции вставки выполняются очень медленно.Я включил параллельное программирование в работе, но производительность по-прежнему была очень низкой.Операция заняла почти 2 часа.
Вот мой фрагмент кода для вызова API:
Parallel.For(0, logV.Count, counter =>
{
Console.WriteLine(JsonConvert.SerializeObject(logV[counter]));
var URL = WebConfigurationManager.AppSettings["URL"];
var client = new RestClient(URL);
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddHeader("Authorization", "Basic TEST");
request.AddParameter("application/json", JsonConvert.SerializeObject(logV[counter]), ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine("Lines read" + counter);
});
Вот мой API:
// POST: api/IISLogs
public async Task<IHttpActionResult> Post(IISLog iislog)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.IISLogs.Add(iislog);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = iislog.Id }, iislog);
}
КакМогу ли я сделать несколько вставок в базе данных, используя одну операцию HTTPS POST или как я могу преобразовать метод в пакетный режим?