Страницы бритвы C # .net Конечная точка API Задержка таймера сеанса диагностики - PullRequest
0 голосов
/ 17 октября 2019

У меня есть конечная точка API, которая запускает и загружает около 362 файлов, эта часть работает нормально. Затем я получаю список всех файлов, которые являются Json. Я загружаю файлы в поток и десериализирую данные, затем создаю новый объект для сохранения в базе данных. Я загружаю около 10 файлов примерно на 10000 строк перед сохранением в базу данных.

Проблемы, с которыми я сталкиваюсь, заключаются в том, что после начала обработки данных время сеанса диагностики будет отставать, а через несколько секунд после 90секунды прошли в реальном времени. Не выдает никаких ошибок и не вылетает.

База данных SQL

Вот ссылка на файлы Json we.tl / t-Aa7VJ18SPf (удалить пробел)

Я попытался установить AutoDetectChangesEnabled вfalse но без изменений. Я удалил другой код, который я могу сделать после того, как он все еще не помог.

string dir = @"C:\Users\shawn\TestFolder\";
int p = 0;
DirectoryInfo d = new DirectoryInfo(dir);//Assuming Test is your Folder
 FileInfo[] Files = d.GetFiles("*.json"); //Getting Text files
_context.ChangeTracker.AutoDetectChangesEnabled = false;
foreach (FileInfo file in Files)
{
    using (StreamReader r = new StreamReader(dir + file.Name))
    {
        dynamic ItemObjLoop = js.Deserialize<dynamic>(r.ReadToEnd());
        //r.Close();
        foreach (var PartsList in ItemObjLoop.data)
        {
            string partidString = PartsList.id.ToString();
            string typeString = PartsList.type.ToString();
            string product_nameString = PartsList.attributes["product_name"].ToString();
            string part_numberString = PartsList.attributes["part_number"].ToString();
            string mfr_part_numberString = PartsList.attributes["mfr_part_number"].ToString();
            string part_descriptionString = PartsList.attributes["part_description"].ToString();
            string categoryString = PartsList.attributes["category"].ToString();
            string subcategoryString = PartsList.attributes["subcategory"].ToString();
            string brandString = PartsList.attributes["brand"].ToString();
            string price_group_idString = PartsList.attributes["price_group_id"].ToString();
            string price_groupString = PartsList.attributes["price_group"].ToString();
            string activeString = PartsList.attributes["active"].ToString();
            string regular_stockString = PartsList.attributes["regular_stock"].ToString();
            string dropship_controller_idString = PartsList.attributes["dropship_controller_id"].ToString();
            string air_freight_prohibitedString = PartsList.attributes["air_freight_prohibited"].ToString();
            string not_carb_approvedString = PartsList.attributes["not_carb_approved"].ToString();
            string ltl_freight_requiredString = PartsList.attributes["ltl_freight_required"].ToString();
            string prop_65String = PartsList.attributes["prop_65"].ToString();
            string epaString = PartsList.attributes["epa"].ToString();
            string thumbnailString = "";
            try
            {
                thumbnailString = PartsList.attributes.thumbnail.ToString();
            }
            catch
            {
                thumbnailString = "placeholder";
            }
            string barcodeString = "";
            try
            {
                barcodeString = PartsList.attributes.barcode.ToString();
            }
            catch
            {
                barcodeString = "nobarcode";
            }
            Parts Part = new Parts()
            {
                partid = partidString,
                type = typeString,
                product_name = product_nameString,
                part_number = part_numberString,
                mfr_part_number = mfr_part_numberString,
                part_description = part_descriptionString,
                category = categoryString,
                subcategory = subcategoryString,
                brand = brandString,
                price_group_id = price_group_idString,
                price_group = price_groupString,
                active = activeString,
                regular_stock = regular_stockString,
                dropship_controller_id = dropship_controller_idString,
                air_freight_prohibited = air_freight_prohibitedString,
                not_carb_approved = not_carb_approvedString,
                ltl_freight_required = ltl_freight_requiredString,
                prop_65 = prop_65String,
                epa = epaString,
                thumbnail = thumbnailString,
                barcode = barcodeString,
            };
            _context.Parts.Add(Part);
            p = p + 1;
        }
        if (p == 10)
        {
            p = 0;
            _context.SaveChanges();
            System.GC.Collect();
        }
    }
     _context.SaveChanges();
}

Он должен работать без зависания и отставания и вставлять все строки вокруг 362 000 строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...