Пример #1
0
        static void Main(string[] args)
        {
            Console.Title = "CloudServiceBus: Client";

            AmazonSQS sqs             = AwsFacade.GetSqsClient();
            var       requestQueueUrl = ConfigurationManager.AppSettings["QueueUrl"];

            //create a queue for responses:
            var queueName          = Guid.NewGuid().ToString();
            var createQueueRequest = new CreateQueueRequest();

            createQueueRequest.QueueName = queueName;
            var createQueueResponse = sqs.CreateQueue(createQueueRequest);
            var responseQueueUrl    = createQueueResponse.CreateQueueResult.QueueUrl;

            var listener = new MessageListener();

            ThreadPool.QueueUserWorkItem(new WaitCallback(listener.StartListening), responseQueueUrl);

            Console.WriteLine("*");
            Console.WriteLine("Sending messages on URL: {0}", requestQueueUrl);
            Console.WriteLine("Receiving responses on URL: {0}", responseQueueUrl);
            Console.WriteLine("*");

            var messageBody = Console.ReadLine();

            while (messageBody != "x")
            {
                var parts = messageBody.Split(' ');
                if (parts[0] == "get")
                {
                    var duration       = int.Parse(parts[1]);
                    var serviceRequest = new GetChangedEmployeesRequest();
                    serviceRequest.LastChangeDate   = DateTime.Now.AddDays(duration).Date;
                    serviceRequest.ResponseQueueUrl = responseQueueUrl;
                    var request = new SendMessageRequest();
                    request.QueueUrl = requestQueueUrl;
                    request.RequestToBody(serviceRequest);
                    SendMessage(request, sqs, serviceRequest);
                }
                if (parts[0] == "flush")
                {
                    var serviceRequest = new FlushDataStoreRequest();
                    serviceRequest.StoreIdentifier = "Sixeyed-CloudServiceBus-ResponseData";
                    var request = new SendMessageRequest();
                    request.QueueUrl = requestQueueUrl;
                    request.RequestToBody(serviceRequest);
                    SendMessage(request, sqs, serviceRequest);
                }

                messageBody = Console.ReadLine();
            }
        }
Пример #2
0
        public void SendResponse(TResponse response)
        {
            var sqsClient = AwsFacade.GetSqsClient();
            var request   = new SendMessageRequest();

            request.QueueUrl = ServiceRequest.ResponseQueueUrl;
            request.ResponseToBody <TResponse>(response);

            Console.WriteLine("*");
            Console.WriteLine("Sending response message: {0} to URL: {1}", request.MessageBody, ServiceRequest.ResponseQueueUrl);
            Console.WriteLine("*");

            sqsClient.SendMessage(request);
        }
Пример #3
0
        static void Main(string[] args)
        {
            Console.Title           = "CloudServiceBus: Service Provider";
            Console.BackgroundColor = ConsoleColor.DarkGray;
            Console.ForegroundColor = ConsoleColor.Black;

            //register all the service handlers:
            Container.RegisterAll <IServiceHandler>();

            //create the queue service client:
            SqsClient = AwsFacade.GetSqsClient();

            //start listening:
            StartHandlers();

            Console.ReadLine();
        }
Пример #4
0
        public void StartListening(object state)
        {
            _queueUrl = state as string;

            if (!string.IsNullOrEmpty(_queueUrl))
            {
                _sqsClient = AwsFacade.GetSqsClient();

                Console.WriteLine("*");
                Console.WriteLine("Listening for messages on URL: {0}", _queueUrl);
                Console.WriteLine("*");

                while (true)
                {
                    ReceiveMessage();
                    Thread.Sleep(ReceiveMessageWaitMilliseconds);
                }
            }
        }
Пример #5
0
        public void StartListening(object state)
        {
            _handler = state as IServiceHandler;

            if (_handler != null)
            {
                _sqsClient = AwsFacade.GetSqsClient();

                Console.WriteLine("*");
                Console.WriteLine("Listening for messages on Queue: {0} with URL: {1}", _handler.QueueName, _handler.QueueUrl);
                Console.WriteLine("*");

                while (true)
                {
                    ReceiveMessage();
                    Thread.Sleep(ReceiveMessageWaitMilliseconds);
                }
            }
        }
Пример #6
0
 public SimpleDBDataStore()
 {
     _simpleDb = AwsFacade.GetSimpleDBClient();
 }