Ejemplo n.º 1
0
 private static void AddAddMultithreadExecutor(this IServiceCollection services, int consumerThreadCount)
 {
     AssertUtils.IsTrue(consumerThreadCount > 0, "RedisMessageBus消费者线程数必须大于0");
     services.AddSingleton(serviceProvider =>
     {
         var logger       = serviceProvider.GetService <ILogger <MyMultithreadTaskExecutor> >();
         var taskExecutor = new MyMultithreadTaskExecutor(options =>
         {
             options.ThreadCount = consumerThreadCount;// Environment.ProcessorCount * 2;
         });
         taskExecutor.OnException += ex =>
         {
             logger.LogError(ex, "RedisMessageBus本地多线程任务执行器执行出错");
             return(Task.CompletedTask);
         };
         taskExecutor.Start();
         logger.LogInformation($"RedisMessageBus本地多线程任务执行器开始 ThreadCount={taskExecutor.ThreadCount}......");
         return(taskExecutor);
     });
 }
Ejemplo n.º 2
0
 private static void AddAddMultithreadExecutor(this IServiceCollection services, int consumerThreadCount)
 {
     if (consumerThreadCount <= 0)
     {
         throw new ArgumentException("Aix.ScheduleTask消费者线程数必须大于0");
     }
     services.AddSingleton(serviceProvider =>
     {
         var logger       = serviceProvider.GetService <ILogger <MyMultithreadTaskExecutor> >();
         var taskExecutor = new MyMultithreadTaskExecutor(options =>
         {
             options.ThreadCount = consumerThreadCount;// Environment.ProcessorCount * 2;
         });
         taskExecutor.OnException += ex =>
         {
             logger.LogError(ex, "Aix.ScheduleTask本地多线程任务执行器执行出错");
             return(Task.CompletedTask);
         };
         taskExecutor.Start();
         logger.LogInformation($"Aix.ScheduleTask本地多线程任务执行器开始 ThreadCount={taskExecutor.ThreadCount}......");
         return(taskExecutor);
     });
 }