/// <summary> /// 出队 /// </summary> /// <param name="listId"></param> /// <returns></returns> public string Dnqueue(string listId) { return(DoWithRetry(() => { string result; using (var cnn = new SERedisConnection(_sectionName, _dbIndex)) { result = cnn.GetDatabase().ListRightPop(listId); if (!string.IsNullOrEmpty(result)) { return result; } // 在多写队列中, 比如F5后面挂了多个redis。 for (int i = 0; i < cnn.Pool.PoolSize - 1; i++) { result = cnn.GetDatabaseFromNextConnection().ListRightPop(listId); if (!string.IsNullOrEmpty(result)) { return result; } } return null; } })); }