コード例 #1
0
        public async Task ProccessMessage(KafkaOptions kafkaOptions, IServiceScope serviceScope, string message)
        {
            IKafkaServiceFactory kafkaFactory = serviceScope.ServiceProvider
                                                .GetRequiredService <IKafkaServiceFactory>();

            IFactory factory = serviceScope.ServiceProvider
                               .GetRequiredService <IFactory>();

            this.manager = new PersonManager(factory);
            this.adaptor = factory.GetAdaptor();

            KafkaProducerService producerService = kafkaFactory.GetProducerService
                                                   (
                kafkaOptions.Settings,
                kafkaOptions.Producers[0]
                                                   );

            if (int.TryParse(message, out int id))
            {
                KafkaProtocolModel kafkaProtocol = this.GetProtocol(message);

                switch (kafkaProtocol.Head.Action)
                {
                case "QUERY":
                    await this.ProcessQuery(producerService);

                    break;

                case "ADD_PERSON":
                    await this.ProcessAddPerson(kafkaProtocol.Data[0], producerService);

                    break;
                }
            }
            else
            {
                var carID = int.Parse(message);
                await this.RemoveCar(carID);
            }
        }
コード例 #2
0
 public KafkaFactory(IKafkaServiceFactory kafkaServiceFactory, IOptions <KafkaOptions> kafkaOptions)
 {
     this.kafkaServiceFactory = kafkaServiceFactory;
     this.kafkaOptions        = kafkaOptions.Value;
 }