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();
}
}