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 CreateOrderSaga( /* SagaWorker sagaWorker, */ GrpcClientsHolder grpcClientsHolder, /* 这里注入orderService真实业务对象而不是saga代理对象,是为了避免两次sagaSession.invokeAsync重复注册一段代码为2各branchId */ OrderServiceImpl orderService, ISagaResolver sagaResolver, ILogger <CreateOrderSaga> logger) : base(logger, sagaResolver) { // this._sagaWorker = sagaWorker; this._grpcClientsHolder = grpcClientsHolder; this._orderService = orderService; this._sagaResolver = sagaResolver; this._logger = logger; // 本saga中服务会自动注入reslver,额外的服务需要手动注入 //_sagaResolver.BindBranch<CreateOrderSagaData>( _orderService.createOrder); //_sagaResolver.BindBranch<CreateOrderSagaData>(_orderService.cancelOrder); //_sagaResolver.BindBranch<CreateOrderSagaData>(_orderService.approveOrder); // 显示定义 sagaDefinition是可选的,如果使用saga server管理动态分支,则不需要显示定义sagaDefinition sagaDefinition = Step() //.SetRemoteAction(createOrder) //.WithCompensation(cancelOrder) .SetRemoteAction(createOrder) .Step() .SetRemoteAction(reserveCustomer) .WithCompensation(cancelReserveCustomer) .Step() .SetRemoteAction(addLockedBalanceToMerchant) .WithCompensation(cancelAddLockedBalanceToMerchant) .Step() .SetRemoteAction(approveOrder) .Step() .SetRemoteAction(approveAddLockedBalanceToMerchant) .Step() .SetRemoteAction(addOrderHistory) .WithCompensation(cancelOrderHistory) .Build(this); }
public OrderServiceImpl(GrpcClientsHolder grpcClientsHolder) { this._grpcClientsHolder = grpcClientsHolder; }