void run()

in src/main/java/com/company/demoapplication/ImageProcessor.java [31:68]


    void run() {
        try {
            List<Message> messages = extractTasks(Main.sqsQueueUrl);

            Main.logger().debug("Received " + messages.size() + " messages");

            for (Message message : messages) {
                Main.logger().debug("Processing message...");

                BWImageProcessor bwip = new BWImageProcessor();
                BrightenImageProcessor bip = new BrightenImageProcessor();

                String imageKey;
                try {
                    imageKey = SqsMessage.deserialize(message.getBody()).imageKey;
                } catch (RuntimeException e) {
                    Main.logger().debug("Could not parse: " + message.getBody());
                    continue;
                }

                String imageName = getNameFromKey(imageKey);
                Main.logger().debug("Image name: " + imageName);
                File outputFile = File.createTempFile(Instant.now().toString() + imageName, null);
                IOUtils.copy(Main.s3Client().getObject(Main.bucketName, imageKey).getObjectContent(), new FileOutputStream(outputFile, false));

                bwip.monochromeAndUpload(outputFile, imageName);
                bip.brightenAndUpload(outputFile, imageName);

                deleteFile(outputFile);
                sqsClient.deleteMessage(Main.sqsQueueUrl, message.getReceiptHandle());

                Main.logger().debug("Message processed.");
            }
        } catch (Exception e) {
            Main.logger().debug("Image Processor failed: " + e);
            e.printStackTrace();
        }
    }