Example #1
0
 /// <summary>
 /// Add lock instance to di
 /// </summary>
 /// <param name="b"></param>
 /// <param name="connect"><see cref="IConnectionMultiplexer"/> factory</param>
 /// <returns></returns>
 public static IRedisRedlockBuilder AddInstance(this IRedisRedlockBuilder b, Func <IConnectionMultiplexer> connect)
 {
     b.Services.AddSingleton(p =>
     {
         var logger           = p.GetRequiredService <ILogger <RedisRedlockInstance> >();
         var key              = p.GetRequiredService <IOptions <RedisRedlockOptions> >().Value.RedisKeyFromResourceName;
         var clockDriftFactor = p.GetRequiredService <IOptions <RedlockOptions> >().Value.ClockDriftFactor;
         return(RedisRedlockInstance.Create(connect(), key, clockDriftFactor, logger));
     });
     return(b);
 }
Example #2
0
 /// <summary>
 /// Add lock instance to di
 /// </summary>
 /// <param name="b"></param>
 /// <param name="connect"><see cref="IConnectionMultiplexer"/> factory</param>
 /// <param name="name">Instance name (ToString and logs)</param>
 /// <returns></returns>
 public static IRedisRedlockBuilder AddInstance(this IRedisRedlockBuilder b, Func <IConnectionMultiplexer> connect, string name)
 {
     b.AddInstance(connect, -1, name);
     return(b);
 }
Example #3
0
 /// <summary>
 /// Add lock instance to di
 /// </summary>
 /// <param name="b"></param>
 /// <param name="opt">Options for <see cref="ConnectionMultiplexer.Connect(ConfigurationOptions,System.IO.TextWriter)"/></param>
 /// <param name="name">Instance name (ToString and logs)</param>
 /// <returns></returns>
 public static IRedisRedlockBuilder AddInstance(this IRedisRedlockBuilder b, ConfigurationOptions opt, string name)
 => b.AddInstance(() => ConnectionMultiplexer.Connect(opt), name);
Example #4
0
 /// <summary>
 /// Configure <see cref="RedisRedlockOptions"/>
 /// </summary>
 /// <param name="b"></param>
 /// <param name="buildOpt">Configure options</param>
 public static IRedisRedlockBuilder ConfigureOptions(this IRedisRedlockBuilder b, Action <RedisRedlockOptions> buildOpt)
 {
     b.Services.Configure(buildOpt);
     return(b);
 }
Example #5
0
 /// <summary>
 /// Add lock instance to di
 /// </summary>
 /// <param name="b"></param>
 /// <param name="connection">Connection string for <see cref="ConnectionMultiplexer.Connect(string,System.IO.TextWriter)"/></param>
 /// <param name="name">Instance name (ToString and logs)</param>
 /// <returns></returns>
 public static IRedisRedlockBuilder AddInstance(this IRedisRedlockBuilder b, string connection, string name)
 => b.AddInstance(() => ConnectionMultiplexer.Connect(connection), name);