public WorkerTask(IOptions <LoaderSettings> settings, IStatsDPublisher stats) { _stats = stats; _settings = settings.Value; ThreadPool.GetMaxThreads(out var maxParallelization, out _); _semaphoreSlim = new SemaphoreSlim(_settings.Parallelization == 0 ? maxParallelization : _settings.Parallelization); }
public static bool Save(this LoaderSettings settings, string path = Constants.UoLoaderDefaultConfigName) { var settingsString = JsonConvert.SerializeObject(settings); try { File.WriteAllText(path, settingsString); return(true); } catch (Exception ex) { Environment.FailFast("Unable to save configuration settings.", ex); return(false); } }
static void LoadConfig() { if (!File.Exists(Constants.UoLoaderDefaultConfigName)) { var settings = ConfigurationHelper.GetDefaultSettings(); settings.Save(); _settings = settings; return; } var fileContents = File.ReadAllText(Constants.UoLoaderDefaultConfigName); var settingsObject = JsonConvert.DeserializeObject <LoaderSettings>(fileContents); if (settingsObject == null) { settingsObject = ConfigurationHelper.GetDefaultSettings(); settingsObject.Save(); _settings = settingsObject; return; } _settings = settingsObject; }
public void Write(string destinationTable, TableType tableType, IDataReader reader) { using (var loader = new LoaderClient(connectionString.DataSource, new LoaderClientBindingConfiguration(), "", false)) { var settings = new LoaderSettings { UseSSL = false, LoadType = "TCP", StagingDatabase = "", DestinationTable = connectionString.InitialCatalog + "." + Utils.AddDefaultSchemaAndQuoteTableName(destinationTable), ClientIps = LoaderClient.GetMachineIpList() }; if (tableType == TableType.Distributed) { settings.Mode = LoaderMode.FastAppend; settings.MultipleTransactions = true; } else { settings.Mode = LoaderMode.Append; settings.MultipleTransactions = false; } loader.SetConfigurationOptions(settings); loader.AuthenticateSqlUser(connectionString.UserID, connectionString.Password); loader.BeginExecuteBinary(delegate { }, null, loader); while (!loader.IsReady) { Thread.Sleep(100); } if (IsStatusError(loader.Status)) { throw new Exception(loader.Status.LoaderError.ExceptionMessage); } loader.SendData(reader); loader.EndSendData(); if (loader.Status.Status == LoaderStatusType.Rejected) { throw new Exception("LoaderStatusType.Rejected"); } if (loader.Status.Status == LoaderStatusType.Aborted) { throw new Exception("LoaderStatusType.Aborted"); } if (loader.Status.Status == LoaderStatusType.Canceled) { throw new Exception("LoaderStatusType.Canceled"); } if (loader.Status.Status == LoaderStatusType.Error) { throw new Exception("LoaderStatusType.Error"); } if (loader.Status.Status == LoaderStatusType.Failed) { throw new Exception("LoaderStatusType.Failed"); } while (((loader.Status.Status != LoaderStatusType.Finished) && (loader.Status.Status != LoaderStatusType.Completed)) && !IsStatusError(loader.Status)) { Thread.Sleep(100); } if (IsStatusError(loader.Status)) { throw new Exception(loader.Status.LoaderError.ExceptionMessage); } } }
public Updater(HttpClient client, LoaderSettings settings) { _httpClient = client; _settings = settings; }