整理代码

This commit is contained in:
2024-01-16 18:00:23 +08:00
parent 78cd833617
commit a74cf5ddb7
7 changed files with 344 additions and 136 deletions

View File

@@ -5,6 +5,7 @@ using ConsoleApp2.Services;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StackExchange.Redis;
namespace ConsoleApp2.HostedServices;
@@ -18,19 +19,21 @@ public class TransformService : ITransformService
private readonly DataRecordQueue _producerQueue;
private readonly DataRecordQueue _consumerQueue;
private readonly ProcessContext _context;
private readonly ConnectionMultiplexer _redisConnection;
public TransformService(ILogger<TransformService> logger,
IOptions<DataTransformOptions> options,
[FromKeyedServices(ProcessStep.Producer)]DataRecordQueue producerQueue,
[FromKeyedServices(ProcessStep.Consumer)]DataRecordQueue consumerQueue,
ProcessContext context)
ProcessContext context, ConnectionMultiplexer redisConnection)
{
_logger = logger;
_options = options;
_producerQueue = producerQueue;
_consumerQueue = consumerQueue;
_context = context;
_redisConnection= redisConnection;
}
public async Task ExecuteAsync(CancellationToken cancellationToken)
@@ -75,12 +78,14 @@ public class TransformService : ITransformService
record[i] = field;
}
//过滤不要的record
if (_options.Value.RecordFilter?.Invoke(record) == false) continue;
if ( await _options.Value.RecordFilter?.Invoke(record,_redisConnection.GetDatabase()) == false) continue;
record.Database = _options.Value.DatabaseFilter?.Invoke(record);
//修改record
_options.Value.RecordModify?.Invoke(record);
//缓存record
_options.Value.RecordCache?.Invoke(record, _redisConnection.GetDatabase());
//替换record
var replaceRecord = _options.Value.RecordReplace?.Invoke(record);
var replaceRecord =await _options.Value.RecordReplace?.Invoke(record, _redisConnection.GetDatabase());
if (replaceRecord != null)
{
record = replaceRecord;