Example #1
0
        /// <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);
        }
Example #2
0
 private void ConnectionShutdown(IConnection connection, ShutdownEventArgs reason)
 {
     foreach (var c in SharedConnections)
     {
         if (c.Key == Endpoint + VirtualHost)
         {
             SharedConnections.Remove(c.Key);
             break;
         }
     }
 }