public void Push(RabbitRequest request, RabbitOption option, Action <ulong, bool> basicAckCall = null) { var correlationId = request.GetCorrelationId(); if (!request.AllowDuplicatePublishing && _cacheStorage == null) { throw new Exception("不允许重复消费的队列需缓存对象"); } if (!request.AllowDuplicatePublishing && _cacheStorage.KeyExists(request.CacheDbIndex, correlationId)) { return; } if (!request.AllowDuplicatePublishing) { var cacheModel = new Cache.Model.CacheUnitModel { DataBaseIndex = request.CacheDbIndex, Expire = TimeSpan.FromDays(1), }; _cacheStorage.SetAdd(cacheModel, correlationId, correlationId); } var pushed = RabbitObjFactory.CreatePushed(request.Header.PublishMethod); pushed.Factory = ConnectionFactory; pushed.Pushed(request, option, basicAckCall); }