public InitServicesBgTask(ILogger <InitServicesBgTask> logger, GrpcClientsHolder grpcClientsHolder, IConsulClient consulClient, SagaCollaborator sagaCollaborator, SagaNodeInfoConfig sagaNodeInfoConfig) { this._logger = logger; this._grpcClientsHolder = grpcClientsHolder; this._consulClient = consulClient; this._sagaCollaborator = sagaCollaborator; this._sagaNodeInfoConfig = sagaNodeInfoConfig; }
public static IServiceCollection AddSagaConfig( this IServiceCollection services, IConfiguration config) { services.AddSingleton <ISagaDataConverter, JsonSagaDataConverter>(); services.AddSingleton <ISagaResolver, SimpleSagaResolver>(); // services.AddSingleton<SagaWorker, SimpleSagaWorker>(); // services.AddSingleton<SagaStore, MemorySagaStore>(); var sagaNodeConfigSection = config.GetSection("Saga:Node"); if (sagaNodeConfigSection.Exists()) { var sagaNodeInfoConfig = sagaNodeConfigSection.Get <SagaNodeInfoConfig>(); services.AddSingleton(sagaNodeInfoConfig); } else { var sagaNodeInfoConfig = new SagaNodeInfoConfig() { Group = "annoy", Service = "annoy", InstanceId = "0" }; services.AddSingleton(sagaNodeInfoConfig); } services.AddSingleton <SagaCollaborator>(); services.AddSingleton <CollaboratorSagaWorker>(); // services.AddHostedService<SagaWorkerBgTask>(); 这是完全预先申明式saga定义的worker services.AddHostedService <CollaboratorSagaWorkerBgTask>(); return(services); }