public static IApplicationBuilder RegisterCanalSharpClient(this IApplicationBuilder app, IApplicationLifetime lifetime, IConfiguration configuration, ILogger <ICanalClientHandler> canalLogger = null)
        {
            var isEnableCanalClient = Convert.ToBoolean(configuration["Canal:Enabled"] ?? "false");

            if (isEnableCanalClient)
            {
                var canalClient = new CanalClientHandler(
                    new CanalOption()
                {
                    CanalServerIP   = configuration["Canal:ServerIP"],
                    CanalServerPort = Convert.ToInt32(configuration["Canal:ServerPort"]),
                    Filter          = configuration["Canal:Filter"] ?? string.Empty,
                    Destination     = configuration["Canal:Destination"] ?? string.Empty,
                    UserName        = configuration["Canal:UserName"] ?? string.Empty,
                    Password        = configuration["Canal:Password"] ?? string.Empty,
                    SleepTime       = Convert.ToInt32(configuration["Canal:SleepTime"] ?? "2000"),
                    BufferSize      = Convert.ToInt32(configuration["Canal:BufferSize"] ?? "1024"),
                    LogSource       = configuration["Canal:LogSource"] ?? "[Canal]"
                },
                    new MySqlOutputOptions()
                {
                    ConnectionString = configuration["Canal:Output:ConnStr"]
                },
                    canalLogger);
                canalClient.Start();

                lifetime.ApplicationStopping.Register(() =>
                {
                    canalClient.Stop();
                });
            }

            return(app);
        }
Example #2
0
        /// <summary>
        /// 构造CanalClientHandler
        /// </summary>
        private static CanalClientHandler BuildCanalClientHandler(IConfiguration configuration, OutputOptions outputOptions, ILogger <ICanalClientHandler> canalLogger)
        {
            var canalClient = new CanalClientHandler(
                new CanalOption()
            {
                CanalServerIP   = configuration["Canal:ServerIP"],
                CanalServerPort = Convert.ToInt32(configuration["Canal:ServerPort"]),
                Filter          = configuration["Canal:Filter"] ?? string.Empty,
                Destination     = configuration["Canal:Destination"] ?? string.Empty,
                UserName        = configuration["Canal:UserName"] ?? string.Empty,
                Password        = configuration["Canal:Password"] ?? string.Empty,
                SleepTime       = Convert.ToInt32(configuration["Canal:SleepTime"] ?? "2000"),
                BufferSize      = Convert.ToInt32(configuration["Canal:BufferSize"] ?? "1024"),
                LogSource       = configuration["Canal:LogSource"] ?? "[Canal]"
            },
                outputOptions,
                canalLogger);

            return(canalClient);
        }