Zxd.Core/code/DG.Kafka.Worker/ServiceCollectionExtensions.cs

46 lines
1.4 KiB
C#

using DG.Kafka;
using DG.Kafka.Worker;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Microsoft.Extensions.DependencyInjection
{
/// <summary>
/// Extensions method
/// </summary>
public static class ServiceCollectionExtensions
{
/// <summary>
/// Redis service registered
/// </summary>
/// <param name="services"></param>
/// <param name="configuration"></param>
/// <returns></returns>
public static IServiceCollection AddKafkaWorker(this IServiceCollection services, IConfiguration configuration)
{
services.AddKafka(configuration);
services.AddSingleton<IWorkerManager, WorkerManager>();
services.AddSingleton<IKafkaWorkerManager, KafkaWorkerManager>();
return services;
}
public static IServiceCollection AddRegisterWorker<TWorker, T>(this IServiceCollection services) where TWorker : KafkaWorkerBase<T>
{
services.AddSingleton<TWorker>();
return services;
}
public static IServiceCollection AddRegisterBatchWorker<TWorker, T>(this IServiceCollection services) where TWorker : BatchKafkaWorkerBase<T>
{
services.AddSingleton<TWorker>();
return services;
}
}
}