Exemplo n.º 1
0
        public RedisStageDirectory(RedisConnectionFactory connectionFactory, ILogger <RedisStageDirectory> logger, IOptions <NanoServiceOptions> serviceOptions, ITransportSerializer serializer)
        {
            _connectionFactory = connectionFactory;
            _serviceOptions    = serviceOptions.Value;
            _serializer        = serializer;
            _logger            = logger;

            var cacheOptions = Microsoft.Extensions.Options.Options.Create <MemoryCacheOptions>(new MemoryCacheOptions()
            {
            });

            _memoryCache = new MemoryCache(cacheOptions);

            _updateTask = Task.Run(async() => {
                while (true)
                {
                    try
                    {
                        await GetAllStages(true);
                        await Task.Delay(TimeSpan.FromSeconds(1));
                    }
                    catch {
                        await Task.Delay(TimeSpan.FromSeconds(2));
                    }
                }
            });
        }
Exemplo n.º 2
0
        public Actor(IServiceProvider _serviceProvider)
        {
            this._serviceProvider = _serviceProvider;

            var options = _serviceProvider.GetService <IOptions <NanoServiceOptions> >();

            _telemetry = _serviceProvider.GetService <ITelemetry>();

            _options = options.Value ?? new NanoServiceOptions();

            _typeName = this.GetType().Name;
        }
Exemplo n.º 3
0
        public RedisSocketServer(
            IServiceProvider services,
            LocalStage localStage,
            ITelemetry telemetry,
            ILogger <RedisSocketServer> logger,
            IOptions <NanoServiceOptions> serviceOptions,
            IOptions <RedisOptions> redisOptions)
        {
            this._services       = services;
            this._serviceOptions = serviceOptions.Value;
            this._redisOptions   = redisOptions.Value;
            this._localStage     = localStage;
            this._telemetry      = telemetry;

            _logger = logger;
        }
Exemplo n.º 4
0
        public RedisActorDirectory(RedisConnectionFactory connectionFactory, IStageDirectory stageDirectory, IOptions <NanoServiceOptions> serviceOptions, ITransportSerializer serializer)
        {
            _connectionFactory = connectionFactory;
            _serviceOptions    = serviceOptions.Value;
            _serializer        = serializer;
            _stageDirectory    = stageDirectory;

            var cacheOptions = Microsoft.Extensions.Options.Options.Create <MemoryCacheOptions>(new MemoryCacheOptions()
            {
                CompactOnMemoryPressure = false
            });

            _memoryCache = new MemoryCache(cacheOptions);



            _scriptsLazy = new Lazy <RedisScripts>(() => { return(new RedisScripts(_database)); });
        }
Exemplo n.º 5
0
        public LocalStage(
            IServiceProvider services,
            ITransportSerializer serializer,
            ITelemetry <LocalStage> telemetry,
            IActorDirectory actorDirectory,
            IStageDirectory stageDirectory,
            ILogger <LocalStage> logger,
            IOptions <NanoServiceOptions> serviceOptions,
            PubSubManager pubsub)
        {
            _services = services;

            _actorDirectory = actorDirectory;

            _stageDirectory = stageDirectory;

            _pubsub = pubsub;

            _serializer = serializer;

            StageGuid = Guid.NewGuid().ToString();

            _logger = logger;

            _telemetry      = telemetry;
            _serviceOptions = serviceOptions.Value;

            var stageDefaultProperty = new Dictionary <string, string>
            {
                { "StageId", StageGuid }
            };

            _telemetry.SetProperties(stageDefaultProperty);


            _reqSecondMeter = _telemetry.Meter(
                "Stage.Requests", TimeSpan.FromSeconds(60)
                );

            _actorInstancesMetric = _telemetry.Metric(
                "Stage.ActiveActorInstances");

            _deactivatedInstancesMeter = _telemetry.Meter("Stage.DeactivatedActorInstances", TimeSpan.FromSeconds(60));
        }
Exemplo n.º 6
0
        public RedisSocketClient(
            IServiceProvider services,
            ITelemetry telemetry,
            ILogger <RedisSocketClient> logger,
            IStageDirectory stageDirectory,
            IOptions <NanoServiceOptions> serviceOptions,
            IOptions <RedisOptions> redisOptions)
        {
            this._services       = services;
            this._serviceOptions = serviceOptions.Value;
            this._redisOptions   = redisOptions.Value;
            this._stageDirectory = stageDirectory;
            this._telemetry      = telemetry;

            _logger = logger;

            _guid = Guid.NewGuid().ToString();



            Listen();
        }
        public RemoteActorMethodInterceptor(
            RemoteStageClient remoteClient,
            ITelemetry telemetry,
            ITransportSerializer serializer,
            IOptions <NanoServiceOptions> serviceOptions,
            TimeSpan?timeout      = null,
            Boolean fireAndForget = false
            )
        {
            _remoteClient   = remoteClient;
            _fireAndForget  = fireAndForget;
            _serializer     = serializer;
            _telemetry      = telemetry;
            _serviceOptions = serviceOptions.Value;


#if !RELEASE
            _timeout = timeout ?? TimeSpan.FromMilliseconds(-1);
#else
            _timeout = timeout ?? TimeSpan.FromSeconds(_serviceOptions.DefaultProxyTimeout);
#endif
        }