Example #1
0
        /// <summary>
        /// Register startuptask which processes TData items
        /// </summary>
        /// <typeparam name="TData"></typeparam>
        /// <param name="options"></param>
        /// <param name="delay"></param>
        /// <returns></returns>
        public static QueueingProviderOptions <TData> ProcessItems <TData>(
            this QueueingProviderOptions <TData> options,
            TimeSpan?delay = null)
            where TData : class
        {
            options.Context.Services.AddQueueProcessItemsStartupTask <TData>(delay ?? new TimeSpan(0, 0, 15));

            return(options);
        }
Example #2
0
        /// <summary>
        /// Register hosted service which processes TData items
        /// </summary>
        /// <typeparam name="TData"></typeparam>
        /// <param name="options"></param>
        /// <param name="handler"></param>
        /// <returns></returns>
        public static QueueingProviderOptions <TData> ProcessItemsHostedService <TData>(
            this QueueingProviderOptions <TData> options,
            Func <IQueueItem <TData>, Task> handler = null)
            where TData : class
        {
            if (handler != null)
            {
                options.Context.Services.AddSingleton(handler);
            }

            options.Context.Services.AddHostedService <QueueProcessItemsHostedService <TData> >();

            return(options);
        }