Beispiel #1
0
        private IRequestClient <FindArchiveRecordRequest> CreateFindArchiveRecordRequestClient(IComponentContext context)
        {
            var requestTimeout = TimeSpan.FromMinutes(1);
            var uri            = new Uri(new Uri(BusConfigurator.Uri), BusConstants.IndexManagerFindArchiveRecordMessageQueue);

            return(bus.CreateRequestClient <FindArchiveRecordRequest>(uri, requestTimeout));
        }
Beispiel #2
0
        public async Task <RoomInfo> CreateRoom(string gameKey, long blind)
        {
            //生成roomId
            string roomId = "";

            while (true)
            {
                roomId = $"{matchingGroup}-{++_roomIdSeed}";
                if (!_allRoomId.Contains(roomId))
                {
                    break;
                }
            }


            if (!_roomConfig.TryGetValue(blind, out var blindConfig))
            {
                throw new Exception($"have no blind{blind} room");
            }

            var busClient = _bus.CreateRequestClient <CreateRoomMqCommand>(new Uri($"{mqUri}/{gameKey}"), TimeSpan.FromSeconds(3));

            var busResponse = await busClient.GetResponseExt <CreateRoomMqCommand, BodyResponse <NullBody> >
                                  (new CreateRoomMqCommand(roomId, gameKey, blind, blindConfig.MinCoins,
                                                           blindConfig.MaxCoins, blindConfig.TipsPersent, RoomInfo.MAX_USER_NUM,
                                                           blindConfig.MinCarry, blindConfig.MaxCarry, blindConfig.RoomType));

            if (busResponse.Message.StatusCode != StatusCodeDefines.Success)
            {
                throw new Exception($"Create Room {roomId} blind{blind} error");
            }
            return(new RoomInfo(roomId, 0, gameKey, blind));
        }
Beispiel #3
0
        private IRequestClient <JobInitRequest> CreateJobInitRequestClient()
        {
            var requestTimeout = TimeSpan.FromMinutes(1);

            var busUri = new Uri(new Uri(BusConfigurator.Uri), BusConstants.DocumentConverterJobInitRequestQueue);
            var client = bus.CreateRequestClient <JobInitRequest>(busUri, requestTimeout);

            return(client);
        }
Beispiel #4
0
        /// <summary>
        ///     Registers the download asset request/response constructur callback for a DI container.
        /// </summary>
        /// <returns>IRequestClient&lt;DownloadAsset, DownloadAssetResult&gt;.</returns>
        public static IRequestClient <DownloadAssetRequest> RegisterDownloadAssetCallback()
        {
            var requestTimeout = TimeSpan.FromMinutes(1);

            var client = bus.CreateRequestClient <DownloadAssetRequest>(
                new Uri(new Uri(BusConfigurator.Uri), BusConstants.WebApiDownloadAssetRequestQueue),
                requestTimeout);

            return(client);
        }
Beispiel #5
0
        public async void GetMoney()
        {
            IRequestClient <GetMoneyMqCommand> client = _mqBus.CreateRequestClient <GetMoneyMqCommand>
                                                            (new Uri("rabbitmq://localhost/SkyWatch/Money"));
            var response = client.GetResponse <BodyResponse <MoneyMqResponse> >(new GetMoneyMqCommand(10000000002));

            var moneyRes = await response;

            _testOutputHelper.WriteLine($"GetMoney:{moneyRes.Message.Body.CurCoins} --01");
            Assert.Equal(StatusCodeDefines.Success, moneyRes.Message.StatusCode);
        }
        public override IRequestClient <IDataRequest, IDataResponse> CreateRequestClient(IBusControl busControl)
        {
            var serviceAddress = new Uri(ConfigurationManager.AppSettings["ServiceAddress"]);
            IRequestClient <IDataRequest, IDataResponse> client = busControl.CreateRequestClient <IDataRequest, IDataResponse>(serviceAddress, TimeSpan.FromSeconds(500));

            return(client);
        }
        public Task <INewOrderNotification> NewOrder(INewOrder requestCmd)
        {
            IRequestClient <INewOrder, INewOrderNotification> client =
                _busControl.CreateRequestClient <INewOrder, INewOrderNotification>(serviceAddress, TimeSpan.FromSeconds(10));

            return(client.Request(requestCmd));
        }
        GetArchiveRecordsForPackageRequestClientCallback(IComponentContext arg)
        {
            var serviceUrl     = string.Format(BusConstants.IndexManagagerRequestBase, nameof(GetArchiveRecordsForPackageRequest));
            var requestTimeout = TimeSpan.FromMinutes(1);

            return(bus.CreateRequestClient <GetArchiveRecordsForPackageRequest>(new Uri(bus.Address, serviceUrl), requestTimeout));
        }
        private static IRequestClient <CreateNewUserRequest, CreateNewUserResponse> CreateRequestClient(IBusControl busControl)
        {
            var serviceAddress = new Uri("rabbitmq://localhost/test/createuser");
            var client         = busControl.CreateRequestClient <CreateNewUserRequest, CreateNewUserResponse>(serviceAddress, TimeSpan.FromSeconds(10));

            return(client);
        }
Beispiel #10
0
        /// <summary>
        /// 创建请求客户端
        /// </summary>
        /// <param name="busControl"></param>
        /// <returns></returns>
        private static IRequestClient <ISimpleRequest, ISimpleResponse> CreateRequestClient(IBusControl busControl)
        {
            var serviceAddress = new Uri($"{RabbitMqConstants.RabbitMqUri}{RabbitMqConstants.RequestClientQueue}");
            var client         = busControl.CreateRequestClient <ISimpleRequest, ISimpleResponse>(serviceAddress, TimeSpan.FromSeconds(10));

            return(client);
        }
Beispiel #11
0
        public async Task <TReturn> SendRequest <TCommand, TReturn>(TCommand command) where TCommand : class where TReturn : class
        {
            var client   = _bus.CreateRequestClient <TCommand>(new Uri($"{_configuration.Host}/${_configuration.CommandRequestQueue}"));
            var response = await client.GetResponse <TReturn>(command);

            return(response.Message);
        }
        public static IRequestClient <ISimpleRequest, ISimpleResponse> CreateRequestClient(this IBusControl busControl)
        {
            var serviceAddress = new Uri(ConfigurationManager.AppSettings["ServiceAddress"]);
            var client         = busControl.CreateRequestClient <ISimpleRequest, ISimpleResponse>(serviceAddress, TimeSpan.FromSeconds(10));

            return(client);
        }
Beispiel #13
0
        private static IRequestClient <OrderPlaced> CreateRequestClient(IBusControl busControl)
        {
            var serviceAddress = new Uri("exchange:OrderPlaced");
            var client         = busControl.CreateRequestClient <OrderPlaced>(serviceAddress, TimeSpan.FromSeconds(10));

            return(client);
        }
Beispiel #14
0
        private static void SendMessage(IBusControl bus)
        {
            var mqAddress = new Uri($"rabbitmq://192.168.80.71/EDCVHOST/Qka.MassTransitTestv3");
            var client    = bus.CreateRequestClient <IRequestMessage, IResponseMessage>(mqAddress,
                                                                                        TimeSpan.FromHours(10)); // 创建请求客户端,10s之内木有回馈则认为是超时(Timeout)

            do
            {
                Console.WriteLine("Press q to exit if you want.");
                string value = Console.ReadLine();
                if (value.ToLower().Equals("q"))
                {
                    break;
                }

                Task.Run(async() =>
                {
                    var request = new RequestMessage()
                    {
                        MessageId = 10001,
                        Content   = value,
                        RequestId = 10001
                    };

                    var response = await client.Request(request);

                    Console.WriteLine($"Request => MessageId={request.MessageId}, Content={request.Content}");
                    Console.WriteLine($"Response => MessageCode={response.MessageCode}, Content={response.Content}");
                }).Wait();
            } while (true);
        }
Beispiel #15
0
        public async Task <ToAppResponse> AppRoomRequest(AppRoomRequest request)
        {
            ToAppResponse commonResponse = null;

            //验证是否是本人ID
            long uid = _userConnManager.GetUidByConn(Context.ConnectionId);

            if (request.Id != uid)
            {
                return(new ToAppResponse(null, StatusCodeDefines.Error, null));
            }
            var busClient = _bus.CreateRequestClient <AppRoomRequest>(new Uri($"{Configuration["Rabbitmq:Uri"]}{request.GameRoomKey}"), TimeSpan.FromSeconds(5));

            try
            {
                var busResponse = await busClient.GetResponseExt <AppRoomRequest, ToAppResponse>(request);

                commonResponse = busResponse?.Message;
            }
            catch (Exception)
            {
                return(new ToAppResponse(null, StatusCodeDefines.BusError, null));
            }
            return(commonResponse);
        }
        private void btnSendRequestReply_Click(object sender, EventArgs e)
        {
            try
            {
                // Setup local variables for the loop
                var requestTasks    = new List <Task>();
                var totalBarsToSend = int.Parse(drpTotalMessagesToSend.Text);
                var barsInEach      = int.Parse(drpBatchSize.Text);
                var totalBarsSent   = 0;

                // Use our custom code (extension method) to figure out where to deliver a request-reply style of a command/query.
                // You can do it manually but it requires lot of code.
                var client = _azureBus.CreateRequestClient <ServeBarsCommand, ServeBarsResponse>(TimeSpan.FromSeconds(5));

                // Basic validation
                if (barsInEach > totalBarsToSend)
                {
                    throw new Exception("Error! Batchsize greater than the total. Makes no sense!");
                }

                // Start loop until all bars are delivered
                while (ShouldKeepSending(totalBarsSent, totalBarsToSend))
                {
                    // Figure out how many bars to send in the next command
                    var thisBatchSize = NextBatchSize(totalBarsSent: totalBarsSent, barsInEachCommand: barsInEach, totalBarsToSend: totalBarsToSend);

                    // Declare a command and fill it with next batch of bars
                    var command = new ServeBarsCommand();
                    command.BarOwner = $"John Doe-{totalBarsSent}";
                    command.Bars     = GetBarsToUpdate(thisBatchSize);

                    // Send the command in a task, and log when we get a reply
                    var task = client
                               .Request(command)
                               .ContinueWith(async(t) =>
                    {
                        var response = await t;

                        // Output on main thread since we're in a task continuation.
                        Invoke(new Action(() =>
                        {
                            LogLine($"Reply ({response.ServedCounter}): {response.AckText}\r\n");
                        }));
                    });
                    requestTasks.Add(task);

                    totalBarsSent += thisBatchSize;
                }

                LogLine($"Sent {totalBarsSent} Commands, now waiting for all to complete ..\r\n");

                // Wait for all to complete
                Task.WaitAll(requestTasks.ToArray());
            }
            catch (Exception ex)
            {
                LogError($"Exception when doing Request/Reply. \r\n ExType: {ex.GetType().Name}\r\n ExMessage: {ex.Message}\r\n");
            }
        }
Beispiel #17
0
        static IRequestClient <ISimpleRequest, ISimpleResponse> CreateRequestClient(IBusControl busControl)
        {
            var serviceAddress = new Uri(Configuration["ServiceAddress"]);
            IRequestClient <ISimpleRequest, ISimpleResponse> client =
                busControl.CreateRequestClient <ISimpleRequest, ISimpleResponse>(serviceAddress, TimeSpan.FromSeconds(10));

            return(client);
        }
Beispiel #18
0
        private static IRequestClient <ISimpleRequest, ISimpleResponse> CreateRequestClient(IBusControl busControl)
        {
            var serviceAddress = new Uri("sb://jperotest.servicebus.windows.net/request_service");
            IRequestClient <ISimpleRequest, ISimpleResponse> client =
                busControl.CreateRequestClient <ISimpleRequest, ISimpleResponse>(serviceAddress, TimeSpan.FromSeconds(10));

            return(client);
        }
 CreateRequestClient <TRequest>(TimeSpan?timeout = null)
     where TRequest : class
 {
     return(_bus.CreateRequestClient <TRequest>(
                _queueUri,
                timeout ?? Configuration.RequestTimeout
                ));
 }
Beispiel #20
0
        private IRequestClient <TManagerCommandRequest, TManagerCommandResponse> CreateRequestClient <TManagerCommandRequest, TManagerCommandResponse>(IEndpointConfiguration endpointConfiguration)
            where TManagerCommandRequest : ManagerCommandRequest
            where TManagerCommandResponse : ManagerCommandResponse
        {
            var serviceAddress = endpointConfiguration.Address;

            return(_busControl.CreateRequestClient <TManagerCommandRequest, TManagerCommandResponse>(serviceAddress, TimeSpan.FromSeconds(30)));
        }
        /// <summary>
        ///     Registers a request/response constructor callback for a DI container.
        /// </summary>
        /// <typeparam name="T1">The type of the Request.</typeparam>
        /// <param name="serviceUrl">The service URL.</param>
        /// <returns>IRequestClient&lt;T1, T2&gt;.</returns>
        private static IRequestClient <T1> GetRequestClient <T1>(string serviceUrl) where T1 : class
        {
            var requestTimeout = TimeSpan.FromMinutes(1);

            var client = bus.CreateRequestClient <T1>(new Uri(new Uri(BusConfigurator.Uri), serviceUrl), requestTimeout);

            return(client);
        }
        public Task <TR> SendRequest <T, TR>(string target, T message, int secoonds = 10) where T : class where TR : class
        {
            Uri uri = new Uri(Utils.CombineUrl(BusConfig.Current.Uri, target));
            IRequestClient <T, TR> client =
                Control.CreateRequestClient <T, TR>(uri, TimeSpan.FromSeconds(secoonds));

            return(client.Request(message));
        }
        private IRequestClient <TRequest, TResponse> CreateRequestClient <TRequest, TResponse>(IEndpointConfiguration endpointConfiguration)
            where TRequest : class, IWorkflowMessage
            where TResponse : class, IWorkflowMessage
        {
            var serviceAddress = endpointConfiguration.Address;

            return(_busControl.CreateRequestClient <TRequest, TResponse>(serviceAddress, TimeSpan.FromSeconds(30)));
        }
        static IRequestClient<ISimpleRequest, ISimpleResponse> CreateRequestClient(IBusControl busControl)
        {
            var serviceAddress = new Uri(ConfigurationManager.AppSettings["ServiceAddress"]);
            IRequestClient<ISimpleRequest, ISimpleResponse> client =
                busControl.CreateRequestClient<ISimpleRequest, ISimpleResponse>(serviceAddress, TimeSpan.FromSeconds(10));

            return client;
        }
Beispiel #25
0
        private async Task <TOut> GetResponseRabbitTask <TIn, TOut>(TIn request)
            where TIn : class
            where TOut : class
        {
            var client   = _busControl.CreateRequestClient <TIn>(_rabbitMqUrl);
            var response = await client.GetResponse <TOut>(request);

            return(response.Message);
        }
        static IRequestClient <ISubmitOrder, IOrderReceived> CreateRequestClient(IBusControl busControl)
        {
            //var serviceAddress = new Uri(ConfigurationManager.AppSettings["ServiceAddress"]);
            //IRequestClient<ISimpleRequest, ISimpleResponse> client =
            //    busControl.CreateRequestClient<ISimpleRequest, ISimpleResponse>(serviceAddress, TimeSpan.FromSeconds(10));

            var client = busControl.CreateRequestClient <ISubmitOrder, IOrderReceived>(new Uri("sb://abc-orders.servicebus.windows.net/input-queue"), TimeSpan.FromSeconds(30));

            return(client);
        }
Beispiel #27
0
        static IRequestClient <CheckOrderStatus, IMessageResponse <OrderStatus> > CreateRequestClient(IBusControl busControl)
        {
            var serviceAddress = new Uri("rabbitmq://fly.rmq.cloudamqp.com/umeawlvd/checkorderstatus");
            var client         = busControl.CreateRequestClient <CheckOrderStatus, IMessageResponse <OrderStatus> >(
                serviceAddress,
                TimeSpan.FromSeconds(120)
                );

            return(client);
        }
Beispiel #28
0
        static IRequestClient <IGenerateScorecardRequest, IGenerateScorecardResponse> CreateRequestClient(IBusControl busControl)
        {
            var config = MassTransitConfigurationManager.Config;

            var url            = config.Host + "/" + MassTransitQueue.GenerateScorecardResponse;
            var serviceAddress = new Uri(url);
            IRequestClient <IGenerateScorecardRequest, IGenerateScorecardResponse> client =
                busControl.CreateRequestClient <IGenerateScorecardRequest, IGenerateScorecardResponse>(serviceAddress, TimeSpan.FromSeconds(10));

            return(client);
        }
        public async Task <ActionResult <Order> > Post([FromBody] Order order)
        {
            IRequestClient <Order, Order> client =
                _bus.CreateRequestClient <Order, Order>(new Uri("rabbitmq://localhost/trendyol_rpc"), TimeSpan.FromSeconds(10));

            var response = await client.Request(new Order { Id = order.Id, OrderCode = "tt" });

            Console.WriteLine($"{order.Id} - test:" + response.Id);

            return(response);
        }
        public static IRequestClient <GetDigitizationOrderData> GetOrderClient()
        {
            // ReSharper disable once RedundantAssignment
            var requestTimeout = TimeSpan.FromMinutes(1);

            #if DEBUG
            requestTimeout = TimeSpan.FromMinutes(10);
            #endif

            return(bus.CreateRequestClient <GetDigitizationOrderData>(new Uri(new Uri(BusConfigurator.Uri), BusConstants.ManagementApiGetDigitizationOrderData), requestTimeout));
        }
        public override async Task CreateRequestClientAsync(string queueName,
                                                            TimeSpan timeout, CancellationToken cancellationToken)
        {
            await Task.Run(() =>
            {
                var requestClient = _bus.CreateRequestClient <ICommandMessage, ICommandMessage>(
                    new Uri($"{_host.Settings.HostAddress.AbsoluteUri}/{queueName}"),
                    timeout);

                _requestResponseClients.Add(queueName, new RequestResponseClient(requestClient));
            }, cancellationToken);
        }