示例#1
0
文件: Program.cs 项目: Espe-on/GasMon
        static void Main()
        {
            // var awsCredentials = new BasicAWSCredentials(Environment.GetEnvironmentVariable("AWS_ACCESS_KEY"), Environment.GetEnvironmentVariable("AWS_SECRET_KEY"));
            var locationFetcher = new LocationsFetcher();
            var sqsClient       = new AmazonSQSClient(RegionEndpoint.EUWest2);
            var snsClient       = new AmazonSimpleNotificationServiceClient(RegionEndpoint.EUWest2);
            var sqsService      = new SqsService(sqsClient);
            var snsService      = new SnsService(snsClient, sqsClient);
            var locations       = locationFetcher.LocationListMaker();
            var messageManager  = new MessageManager(sqsService, new MessageParser(), new LocationChecker(locations));


            var locationList = locationFetcher.LocationListMaker();

            foreach (var location in locationList)
            {
                Console.WriteLine($"Location ID:{location.Id} has the location (x:{location.x}, y:{location.y}).");
            }
            using (var queue = new SubscribedQueue(sqsService, snsService))
            {
                var endTime = DateTime.Now.AddMinutes(1);
                while (DateTime.Now < endTime)
                {
                    messageManager.ProcessMessages(queue.QueueUrl);
                }
            }
            Console.WriteLine("finished.");
        }
示例#2
0
        public SubscribedQueue(SqsService sqsService, SnsService snsService)
        {
            _sqsService = sqsService;
            _snsService = snsService;

            QueueUrl         = sqsService.CreateQueueAsync().Result;
            _subscriptionArn = _snsService.SubscribeQueueAsync(QueueUrl).Result;
        }
示例#3
0
 public MessageManager(SqsService sqsService, MessageParser messageParser, LocationChecker locationChecker)
 {
     _sqsService      = sqsService;
     _messageParser   = messageParser;
     _locationChecker = locationChecker;
 }