private async Task Init(IRabbitMQClient client) { var isOnce = QueueCount == 1; if (isOnce) { var pullTask = client.PullModel(); if (!pullTask.IsCompleted) { await pullTask; } models.Add(Queue, pullTask.Result); } else { var nodeList = new List <string>(); for (int i = 0; i < QueueCount; i++) { var queue = $"{ Queue}_{i}"; nodeList.Add(queue); if (!models.ContainsKey(queue)) { var pullTask = client.PullModel(); if (!pullTask.IsCompleted) { await pullTask; } models.Add(queue, pullTask.Result); } } _CHash = new ConsistentHash(nodeList, QueueCount * 10); } //申明exchange await client.ExchangeDeclare(Exchange); Client = client; }