46 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|