/// <summary> /// /// </summary> protected Actor(string connectionString = "localhost", string id = null, string group = null, int timeout = 60000, int priority = 0, byte maxConcurrencyPerCpu = 1) { Redis redis; if (connectionString == null) { throw new ArgumentNullException(nameof(connectionString)); } if (!SharedConnections.TryGetValue(connectionString, out redis)) { redis = new Redis(connectionString, "R"); SharedConnections[connectionString] = redis; } Id = string.IsNullOrWhiteSpace(id) ? this.GetType().Name : id; Group = @group ?? ""; Timeout = timeout; Priority = priority; MaxConcurrencyPerCpu = maxConcurrencyPerCpu; _scheduler = TopScheduler.ActivateNewQueue(Priority); _queue = new RedisQueue <Message <TReq> >(redis, Id, Timeout, Group); _results = new RedisAsyncDictionary <Message <TResp> >(redis, Id, Timeout, Group); }
private void ConnectionShutdown(IConnection connection, ShutdownEventArgs reason) { foreach (var c in SharedConnections) { if (c.Key == Endpoint + VirtualHost) { SharedConnections.Remove(c.Key); break; } } }