This commit is contained in:
陈梓阳 2024-02-09 13:41:40 +08:00
parent 41a1dc8a4f
commit 913c725fe1
4 changed files with 15 additions and 9 deletions

View File

@ -595,15 +595,17 @@ async Task RunProgram()
host.Services.AddDataSourceFactory(); host.Services.AddDataSourceFactory();
host.Services.AddErrorRecorderFactory(); host.Services.AddErrorRecorderFactory();
host.Services.AddSingleton<ProcessContext>(); host.Services.AddSingleton<ProcessContext>();
host.Services.AddKeyedSingleton<DataRecordQueue>(ConstVar.Producer, new DataRecordQueue(200_000)); var prodLen = host.Configuration.GetRequiredSection("RecordQueue").GetValue<int>("ProducerQueueLength");
host.Services.AddRecordQueuePool(tenantDbOptions.DbGroup.Keys.Select(key => (key:key, queue:new DataRecordQueue(60_000))).ToArray()); var consLen = host.Configuration.GetRequiredSection("RecordQueue").GetValue<int>("ConsumerQueueLength");
host.Services.AddKeyedSingleton<DataRecordQueue>(ConstVar.Producer, new DataRecordQueue(prodLen));
host.Services.AddRecordQueuePool(tenantDbOptions.DbGroup.Keys.Select(key => (key:key, queue:new DataRecordQueue(consLen))).ToArray());
host.Services.AddSingleton<ITaskMonitorLogger, CacheTaskMonitorLogger>(); host.Services.AddSingleton<ITaskMonitorLogger, CacheTaskMonitorLogger>();
host.Services.AddSingleton<ITaskMonitorLogger, LoggerTaskMonitorLogger>(); host.Services.AddSingleton<ITaskMonitorLogger, LoggerTaskMonitorLogger>();
host.Services.AddHostedService<MainHostedService>(); host.Services.AddHostedService<MainHostedService>();
host.Services.AddSingleton<IInputService, FileInputService>(); host.Services.AddSingleton<IInputService, FileInputService>();
host.Services.AddSingleton<ITransformService, TransformService>(); host.Services.AddSingleton<ITransformService, TransformService>();
host.Services.AddSingleton<IOutputService, OutputService>(); host.Services.AddSingleton<IOutputService, VoidOutputService>();
host.Services.AddSingleton<TaskMonitorService>(); host.Services.AddSingleton<TaskMonitorService>();
host.Services.AddRedisCache(redisOptions); host.Services.AddRedisCache(redisOptions);
var app = host.Build(); var app = host.Build();

View File

@ -49,7 +49,7 @@ public class CsvReader : IDataReader
if (string.IsNullOrWhiteSpace(str)) if (string.IsNullOrWhiteSpace(str))
return false; return false;
var fields = ParseRow(str, QuoteChar, Delimiter[0]); var fields = ParseRowFaster(str, QuoteChar, Delimiter[0]);
Current = new DataRecord(fields, TableName, Headers); Current = new DataRecord(fields, TableName, Headers);
return true; return true;
} }

View File

@ -11,9 +11,9 @@
}, },
"Transform":{ "Transform":{
"StrictMode": false, // true "StrictMode": false, // true
"EnableFilter": true, // "EnableFilter": false, //
"EnableReplacer": true, // "EnableReplacer": false, //
"EnableReBuilder": true, // "EnableReBuilder": false, //
"CleanDate": "202301" // "CleanDate": "202301" //
}, },
"Output":{ "Output":{
@ -23,6 +23,10 @@
"MaxDatabaseOutputTask" : 4, // "MaxDatabaseOutputTask" : 4, //
"TreatJsonAsHex": false // json16(0x)json "TreatJsonAsHex": false // json16(0x)json
}, },
"RecordQueue":{
"ProducerQueueLength": 50000, //
"ConsumerQueueLength": 10000, //
},
"RedisCache": { "RedisCache": {
"Configuration": "192.168.1.246:6380", "Configuration": "192.168.1.246:6380",
"InstanceName" : "mes-etl:" "InstanceName" : "mes-etl:"

View File

@ -38,7 +38,7 @@ public class Test
while (!reader.EndOfStream) while (!reader.EndOfStream)
{ {
var str = await reader.ReadLineAsync(); var str = await reader.ReadLineAsync();
// char a; char a;
// foreach (var c in str) // foreach (var c in str)
// { // {
// a = c; // a = c;