Exemplo n.º 1
0
        public bool PutLogistics(Able.Store.Model.OrdersDomain.Order order)
        {
            var option = new RabbitProductOption
            {
                AutoDelete      = true,
                Exclusive       = false,
                Durable         = false,
                PublishMethod   = PublishMethod.简单工作队列,
                AutoAck         = true,
                RoutingKey      = "queue.direct.undurable.placeorder",
                QueueNameOption = new RabbitQueueNameOption()
            };

            option.QueueNameOption.Add("queue.direct.undurable.placeorder");

            var body = LogisticsRequestFactory.CreatePlaceOrder(order);

            RabbitRequest request = new RabbitRequest();

            request.Header =
                new RabbitRequestHeader
            {
                BusinessId    = order.Id.ToString(),
                BusinessName  = PUTLOGISTICS,
                Module        = MODULE,
                PublishMethod = PublishMethod.简单工作队列,
            };
            request.Body = LockInventoryItemBody.ToBodys(order.Items);

            request.CacheDbIndex = OrderStaticResource.DBINDEX;

            _controller.Push(request, option);

            return(true);
        }
Exemplo n.º 2
0
        public void PublisSystemException(string actionName, int controllerHashCode,
                                          string controllerName, Exception exception)
        {
            RabbitProductController controller = AutofacHelper.Resolver <RabbitProductController>();

            var request = new RabbitRequest
            {
                Body   = exception,
                Header = new RabbitRequestHeader
                {
                    BusinessId   = string.Concat(actionName, controllerHashCode),
                    BusinessName = actionName,
                    Module       = controllerName,
                },
                AllowDuplicatePublishing = true
            };
            var productOption = new RabbitProductOption
            {
                AutoDelete     = true,
                Durable        = false,
                PublishMethod  = PublishMethod.发布订阅,
                Exclusive      = false,
                ExchangeOption = new RabbitExchangeOption
                {
                    AutoDelete   = true,
                    Durable      = false,
                    ChangeType   = ChangeType.Fanout,
                    ExchangeName = "exception.nodurable.fanout",
                    Exclusive    = false
                },
                AutoAck         = true,
                QueueNameOption = new RabbitQueueNameOption()
            };

            //通知系统
            productOption.QueueNameOption.Add("exception.nodurable.fanout.notifysys");
            //日志系统
            productOption.QueueNameOption.Add("exception.nodurable.fanout.logsys");
            controller.Push(request, productOption);
        }