Example #1
0
        /// <summary>
        /// Use a timer based outbox sweeper as a Hosted Service.
        /// </summary>
        /// <param name="brighterBuilder">The Brighter Builder</param>
        /// <param name="timedOutboxSweeperOptionsAction">Configuration actions for the Timed outbox Sweeper <see cref="TimedOutboxSweeper"/></param>
        /// <returns>The Brighter Builder</returns>
        public static IBrighterBuilder UseOutboxSweeper(this IBrighterBuilder brighterBuilder,
                                                        Action <TimedOutboxSweeperOptions> timedOutboxSweeperOptionsAction = null)
        {
            var options = new TimedOutboxSweeperOptions();

            timedOutboxSweeperOptionsAction?.Invoke(options);

            brighterBuilder.Services.AddSingleton <TimedOutboxSweeperOptions>(options);
            brighterBuilder.Services.AddHostedService <TimedOutboxSweeper>();
            return(brighterBuilder);
        }
Example #2
0
 public TimedOutboxSweeper(IServiceScopeFactory serviceScopeFactory, TimedOutboxSweeperOptions options)
 {
     _serviceScopeFactory = serviceScopeFactory;
     _options             = options;
 }