예제 #1
0
 public DFrameApp(ILogger <DFrameApp> logger, IServiceProvider provider, DFrameOptions options, DFrameWorkerCollection workers)
 {
     this.provider = provider;
     this.logger   = logger;
     this.workers  = workers;
     this.options  = options;
 }
예제 #2
0
        public static async Task RunDFrameAsync(this IHostBuilder hostBuilder, string[] args, DFrameOptions options)
        {
            var workerCollection = DFrameWorkerCollection.FromCurrentAssemblies();

            if (args.Length == 0)
            {
                ShowDFrameAppList(workerCollection);
                return;
            }

            hostBuilder = hostBuilder
                          .ConfigureServices(x =>
            {
                x.AddSingleton(options);
                x.AddSingleton(workerCollection);

                foreach (var item in workerCollection.All)
                {
                    x.AddTransient(item.WorkerType);
                }
            });

            if (args.Length != 0 && args.Contains("--worker-flag"))
            {
                await hostBuilder.RunConsoleAppFrameworkAsync <DFrameWorkerApp>(args);
            }
            else
            {
                await hostBuilder.RunConsoleAppFrameworkAsync <DFrameApp>(args);
            }
        }
예제 #3
0
 static void ShowDFrameAppList(DFrameWorkerCollection types)
 {
     Console.WriteLine("WorkerNames:");
     foreach (var item in types.All)
     {
         Console.WriteLine(item.Name);
     }
 }
예제 #4
0
        public DFrameRamupRunner(ILogger <DFrameApp> logger, IServiceProvider provider, DFrameOptions options, DFrameWorkerCollection workers, int maxWorkerPerProcess, int workerSpawnCount, int workerSpawnSecond)

            : base(logger, provider, options, workers)
        {
            this.maxWorkerPerProcess = maxWorkerPerProcess;
            this.workerSpawnCount    = workerSpawnCount;
            this.workerSpawnSecond   = workerSpawnSecond;
        }
예제 #5
0
 public DFrameConcurrentRequestRunner(ILogger <DFrameApp> logger, IServiceProvider provider, DFrameOptions options, DFrameWorkerCollection workers, int workerPerProcess, int executePerWorker)
     : base(logger, provider, options, workers)
 {
     this.workerPerProcess = workerPerProcess;
     this.executePerWorker = executePerWorker;
 }