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)); } } }); }
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; }
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; }
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)); }); }
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)); }
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 }