Пакетный запрос в Https Post C # - PullRequest
0 голосов
/ 27 октября 2018

Я написал 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 или как я могу преобразовать метод в пакетный режим?

...