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);
}