using ConsoleApp2; using ConsoleApp2.HostedServices; using ConsoleApp2.Options; using ConsoleApp2.Services; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Serilog; // 加入数据库过滤 // HostedService不是并行的,完善TaskManager手动开启线程 // 测试BlockingCollection对速度的影响? // 重新同步数据 // Json列和Blob列不一致 /* JSV导出带转义的列有误 * order_data_block表id 4153969 * order_data_parts表Spec列 * order_module表Name列 * process_group表Items列 */ await RunProgram(); return; async Task RunProgram() { ThreadPool.SetMaxThreads(200, 200); var host = Host.CreateApplicationBuilder(); host.Configuration.AddCommandLine(args); host.Services.Configure(option => { option.DelimiterChar = ','; option.QuoteChar = '"'; option.InputDir = "D:/Dump/MyDumper"; option.OutputDir = "D:/DumpOutput"; option.MaxThreads = 12; }); host.Services.Configure(options => { //TODO: Database Filter options.DatabaseFilter = record => "cferp_test_1"; options.ColumnTypeConfig = new() { { "simple_plan_order.PlaceData", ColumnType.Blob }, { "order_block_plan_result.PlaceData", ColumnType.Blob }, { "order_box_block.Data", ColumnType.Blob }, { "order_data_goods.ExtraProp", ColumnType.Text }, { "order_module_extra.JsonStr", ColumnType.Text }, { "process_info.Users", ColumnType.Text }, { "order_process_schdule.CustomOrderNo", ColumnType.Text }, { "order_process_schdule.OrderProcessStepName", ColumnType.Text }, { "order_process_schdule.AreaName", ColumnType.Text }, { "order_process_schdule.ConsigneeAddress", ColumnType.Text }, { "order_process_schdule.ConsigneePhone", ColumnType.Text }, { "report_source.Sql", ColumnType.Text }, { "report_source.KeyValue", ColumnType.Text }, { "report_source.Setting", ColumnType.Text }, { "order_data_block.RemarkJson", ColumnType.Text }, { "order_patch_detail.BlockDetail", ColumnType.Text }, { "order_scrap_board.OutLineJson", ColumnType.Text }, { "simple_package.Items", ColumnType.Text }, { "order_batch_pack_config.Setting", ColumnType.Text }, { "machine.Settings", ColumnType.Text }, { "sys_config.Value", ColumnType.Text }, { "sys_config.JsonStr", ColumnType.Text }, { "process_item_exp.ItemJson", ColumnType.Text }, { "report_template.Template", ColumnType.Text }, { "report_template.SourceConfig", ColumnType.Text }, { "order_block_plan.OrderNos", ColumnType.Text }, { "order_block_plan.BlockInfo", ColumnType.Text }, }; }); // 加入数据库过滤后删除 host.Services.Configure(options => { options.Host = "localhost"; options.Port = 33306; options.Database = "cferp_test_1"; options.User = "root"; options.Password = "123456"; }); host.Services.AddLogging(builder => { builder.ClearProviders(); builder.AddSerilog(new LoggerConfiguration().WriteTo.Console().CreateLogger()); }); host.Services.AddSingleton(); host.Services.AddKeyedSingleton(ProcessStep.Producer); host.Services.AddKeyedSingleton(ProcessStep.Consumer); host.Services.AddKeyedSingleton(ProcessStep.Producer); host.Services.AddKeyedSingleton(ProcessStep.Consumer); host.Services.AddHostedService(); host.Services.AddHostedService(); host.Services.AddHostedService(); host.Services.AddHostedService(); var app = host.Build(); await app.RunAsync(); }