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));
                }
            }
        }
Ejemplo n.º 2
0
        private static async Task SetupAsync()
        {
            var connFactory = new MySqlConnectionFactory(new ConnectionFactoryOptions <MySqlConnectionOptions>
            {
                Write = new MySqlConnectionOptions
                {
                    Host     = Host,
                    Username = RootUser,
                    Password = RootPwd
                }
            });

            var testRepo = new TestRepo(connFactory);

            await testRepo.WriteAsync("CREATE SCHEMA IF NOT EXISTS test_db; " +
                                      "CREATE TABLE IF NOT EXISTS `test_db`.`test_table` (id int PRIMARY KEY);" +
                                      "CREATE USER IF NOT EXISTS 'testusr'@'%' IDENTIFIED BY 'testpw';" +
                                      "GRANT INSERT,SELECT ON test_db.test_table TO 'testusr'@'%';" +
                                      "FLUSH PRIVILEGES;"
                                      );
        }