public MySqlScalerProvider()

in src/TriggersBinding/MySqlScalerProvider.cs [27:46]


        public MySqlScalerProvider(IServiceProvider serviceProvider, TriggerMetadata triggerMetadata)
        {
            IConfiguration config = serviceProvider.GetService<IConfiguration>();
            ILoggerFactory loggerFactory = serviceProvider.GetService<ILoggerFactory>();
            ILogger logger = loggerFactory.CreateLogger(LogCategories.CreateTriggerCategory("MySql"));
            MySqlMetaData MySqlMetadata = JsonConvert.DeserializeObject<MySqlMetaData>(triggerMetadata.Metadata.ToString());
            MySqlMetadata.ResolveProperties(serviceProvider.GetService<INameResolver>());
            var userTable = new MySqlObject(MySqlMetadata.TableName);
            string connectionString = MySqlBindingUtilities.GetConnectionString(MySqlMetadata.ConnectionStringSetting, config);
            IOptions<MySqlOptions> options = serviceProvider.GetService<IOptions<MySqlOptions>>();
            int configOptionsMaxChangesPerWorker = options.Value.MaxChangesPerWorker;
            int configAppSettingsMaxChangesPerWorker = config.GetValue<int>(MySqlTriggerConstants.ConfigKey_MySqlTrigger_MaxChangesPerWorker);
            // Override the maxChangesPerWorker value from config if the value is set in the trigger appsettings
            int maxChangesPerWorker = configAppSettingsMaxChangesPerWorker != 0 ? configAppSettingsMaxChangesPerWorker : configOptionsMaxChangesPerWorker != 0 ? configOptionsMaxChangesPerWorker : MySqlOptions.DefaultMaxChangesPerWorker;
            string userDefinedLeasesTableName = MySqlMetadata.LeasesTableName;
            string userFunctionId = MySqlMetadata.UserFunctionId;

            this._scaleMonitor = new MySqlTriggerScaleMonitor(userFunctionId, userTable, userDefinedLeasesTableName, connectionString, maxChangesPerWorker, logger);
            this._targetScaler = new MySqlTriggerTargetScaler(userFunctionId, userTable, userDefinedLeasesTableName, connectionString, maxChangesPerWorker, logger);
        }