/// <summary> Чтение буфера в SQL </summary> private async Task <List <IElasticDocument> > ReadBuffer(CompanyDocumentReaderSettings readerSettings) { var reader = new CompanyDocumentReader(SqlConnectionString, readerSettings); var buffer = await reader.Read(); return(buffer); }
private void SaveReaderSettings(CompanyDocumentReaderSettings readerSettings) { try { string settingsString = ElasticLoaderSettings.Default.CompanyDocumentReaderSettings = JsonConvert.SerializeObject(readerSettings, Formatting.Indented); ElasticLoaderSettings.Default.Save(); } catch (Exception e) { throw new Exception("Ошибка записи файла конфигурации CompanyDocumentLoaderSettings", e); } }
/// <summary> Запись буфера в Elastic </summary> private async Task WriteBuffer(List <IElasticDocument> buffer, CompanyDocumentReaderSettings readerSettings) { foreach (var doc in buffer) { doc.UpdateDate = readerSettings.LastStarted; } var writer = new CompanyDocumentWriter(ElasticConnectionString); await writer.BulkCreateOrUpdate(buffer); // корректировка параметров для следующей операции чтения: readerSettings.LastId = int.Parse( buffer.OrderByDescending(d => int.Parse(d.Id)).First().Id); this.SaveReaderSettings(readerSettings); }
private CompanyDocumentReaderSettings GetReaderSettings(bool getDefaultSettings = false) { CompanyDocumentReaderSettings defaultSettings = new CompanyDocumentReaderSettings() { BufferCount = 10000, LastId = 0, LastCompleted = DateTime.Parse("1753-01-01T00:00:00.000"), LastStarted = null }; if (getDefaultSettings) { return(defaultSettings); } try { CompanyDocumentReaderSettings settings; string settingsString = ElasticLoaderSettings.Default.CompanyDocumentReaderSettings; if (String.IsNullOrWhiteSpace(settingsString)) { settings = defaultSettings; } else { settings = (CompanyDocumentReaderSettings) JsonConvert.DeserializeObject(settingsString, typeof(CompanyDocumentReaderSettings)); } return(settings); } catch (Exception e) { throw new Exception("Ошибка чтения файла конфигурации CompanyDocumentLoaderSettings", e); } }