static async Task <int> ActivateService(IPoolProxy pools, IServiceProxyFactory serviceProxyFactory, string serviceTypeName, string serviceInstanceName, ObjectId activationId, int users)
        {
            Stopwatch timer = new Stopwatch();

            timer.Start();
            try
            {
                var serviceInstance = await PooledServiceProxy <IServiceInstance> .Create(pools, serviceProxyFactory, serviceTypeName, serviceInstanceName);

                //verify the service instance uri returned exists
                //await serviceInstance.PingAsync();
            }
            catch (AggregateException ex)
            {
                WriteConsoleActivationStatus($"Failed with message {ex.InnerException.Message}", activationId, serviceInstanceName, users);
            }
            catch (Exception ex)
            {
                WriteConsoleActivationStatus($"Failed with message {ex.Message}", activationId, serviceInstanceName, users);
            }
            finally
            {
                timer.Stop();
                WriteConsoleActivationStatus($"Finished in {timer.ElapsedMilliseconds} ms", activationId, serviceInstanceName, users);
            }

            // 'think' time
            await Task.Delay(3000);

            return((int)timer.ElapsedMilliseconds);
        }
示例#2
0
 public Partition(ActorService actorService, ActorId actorId, TelemetryClient telemetryClient, IInstanceProxy instances, IPoolProxy pools)
     : base(actorService, actorId)
 {
     this.telemetryClient = telemetryClient;
     this.instances       = instances;
     this.pools           = pools;
 }
示例#3
0
 public OrphanMonitor(TelemetryClient telemetryClient, FabricClient fabricClient, IRemoveOrphanCommandFactory orphanFactory, IPoolProxy poolProxy)
 {
     _telemetryClient = telemetryClient;
     _fabricClient    = fabricClient;
     _orphanFactory   = orphanFactory;
     _poolProxy       = poolProxy;
 }
        static async Task ResetPool(IPoolProxy pools)
        {
            WriteConsole("Removing old pool");
            await pools.StopPoolAsync(NoOpServiceTypeUri);

            await pools.DeletePoolAsync(NoOpServiceTypeUri);

            WriteConsole("Registering Service with Pool Manager...");
            var request = new StartPoolRequest(
                isServiceStateful: true,
                hasPersistedState: true,
                minReplicas: 1,
                targetReplicas: 3,
                partitionScheme: SDK.PartitionSchemeDescription.Singleton,
                maxPoolSize: 20,
                idleServicesPoolSize: 5,
                servicesAllocationBlockSize: 2,
                expirationQuanta: TimeSpan.FromMinutes(1)
                );
            await pools.StartPoolAsync(NoOpServiceTypeUri, request);

            WriteConsole("Registration Completed");
        }
 public PoolManagerBindings(FabricClient fabricClient, IPoolProxy pools, IPartitionProxy partitions)
 {
     _fabricClient = fabricClient;
     _pools        = pools;
     _partitions   = partitions;
 }
 public RestartPoolHandler(IPoolProxy pools, ITerminal terminal)
 {
     _pools    = pools;
     _terminal = terminal;
 }
示例#7
0
 public PoolsController(IPoolProxy pools)
 {
     this.pools = pools;
 }