Ejemplo n.º 1
0
        private static async Task Main(string[] args)
        {
            await SetupAsync();

            var services = new ServiceCollection();

            services.AddLogging(o => o.AddConsole());

            var connection = new MySqlConnectionOptions
            {
                Host     = Host,
                Username = "******",
                Password = "******",
                Database = "test_db"
            };

            var connFactory = new MySqlConnectionFactory(new ConnectionFactoryOptions <MySqlConnectionOptions>
            {
                Write = connection,
                Read  = connection
            });

            var serviceProvider = services.BuildServiceProvider();

            var loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();
            var logger        = serviceProvider.GetRequiredService <ILogger <Program> >();

            var testRepo = new TestRepo(connFactory, new MySqlRepositoryOptions
            {
                FailOverRetryCount = 10,
                LoggerFactory      = loggerFactory
            });

            logger.LogInformation("Starting...");

            if (args.Contains("-write"))
            {
                while (true)
                {
                    logger.LogInformation("Writing...");

                    await testRepo.WriteAsync("INSERT IGNORE INTO `test_table` VALUES (1);");

                    await Task.Delay(TimeSpan.FromSeconds(1));
                }
            }

            if (args.Contains("-read"))
            {
                while (true)
                {
                    logger.LogInformation("Reading...");

                    await testRepo.ReadAsync <int>("SELECT * FROM `test_table`;");

                    await Task.Delay(TimeSpan.FromSeconds(1));
                }
            }
        }