Beispiel #1
0
        private async Task Setup()
        {
            var rootOperationScopeProvider = new OperationScopeProvider();

            //_busBroker = new InProcAsyncBusBroker(LoggerFactory.CreateLogger("QX.Zoo.InProcAsyncBus"), rootOperationScopeProvider);
            _busBroker = new RabbitMQBroker(Configuration.GetValue <RabbitMQConfiguration>("rabbitmq"), rootOperationScopeProvider, LoggerFactory.CreateLogger("QX.Zoo.InProcAsyncBus"));

            var factoryId        = SequentialGuidGenerator.GetOrCreateGenerator <Citizen>().NewGuid();
            var maxVersionNumber = StaticCitizensWarehouse.Version;
            var warehouse        = new WarehouseActor <Citizen>(StaticCitizensWarehouse.ExternalLoader, LoggerFactory.CreateLogger("QX.Zoo.Warehouse"));

            _instance1 = new AccumulatingFactory <Citizen>(factoryId, 1, maxVersionNumber, b => b.GetEntity("exchange/zoo"), x => LoggerFactory.CreateLogger(x?.ToString()));
            _instance2 = new AccumulatingFactory <Citizen>(factoryId, 2, maxVersionNumber, b => b.GetEntity("exchange/zoo"), x => LoggerFactory.CreateLogger(x?.ToString()));
            _instance3 = new AccumulatingFactory <Citizen>(factoryId, 3, maxVersionNumber, b => b.GetEntity("exchange/zoo"), x => LoggerFactory.CreateLogger(x?.ToString()));

            await _instance1.StartAsync(_busBroker);

            await _instance2.StartAsync(_busBroker);

            await _instance3.StartAsync(_busBroker);
        }
        public StatelessServiceFabricHost(StatelessServiceContext serviceContext) : base(serviceContext)
        {
            _serviceContext = serviceContext;
            _loggerFactory  = new LoggerFactory().AddConsole();

            _log = _loggerFactory.CreateLogger("StatelessService");
            _log.LogTrace("StatelessServiceFabricHost .ctor");

            _config = serviceContext.CodePackageActivationContext.GetConfigurationPackageObject("Config").Settings;
            if (_config == null)
            {
                throw new ArgumentException("Configuration package 'Config' not found");
            }

            var rmqConfig = _config.Sections["RabbitMQ"];

            if (rmqConfig == null)
            {
                throw new ArgumentException("Configuration section 'RabbitMQ' not found");
            }

            var rabbitConfig = new RabbitMQConfiguration
            {
                HostNames = rmqConfig.Parameters["hostnames"]?.Value?.Split(';').ToList(),
                UserName  = rmqConfig.Parameters["userName"]?.Value,
                Password  = rmqConfig.Parameters["password"]?.Value,
                Port      = int.Parse(rmqConfig.Parameters["port"]?.Value ?? "5672")
            };

            _asyncBusBroker = new RabbitMQBroker(rabbitConfig, new OperationScopeProvider(), _loggerFactory.CreateLogger("RabbitMQ"));

            //var warehouse = new WarehouseActor<Citizen>(StaticCitizensWarehouse.ExternalLoader, _loggerFactory.CreateLogger("Warehouse"));
            _instance = new AccumulatingFactory <Citizen>(
                SequentialGuidGenerator.GetOrCreateGenerator <Citizen>().NewGuid(),
                1,
                StaticCitizensWarehouse.Version,
                b => b.GetEntity("exchange/zoo"),
                x => _loggerFactory.CreateLogger(x?.ToString()));
        }