Skip to content

Instantly share code, notes, and snippets.

@YoshihitoAso
Last active December 14, 2015 16:09
Show Gist options
  • Save YoshihitoAso/5113256 to your computer and use it in GitHub Desktop.
Save YoshihitoAso/5113256 to your computer and use it in GitHub Desktop.
[AWS][SQS]AWS SQSのサンプルプログラム(Spring版)
public class QueueWorker2 {
private static final String QUEUE_URL="...";
public static void main(String[] args) {
try (ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml")) {
SpringQueueWorker main = context.getBean(SpringQueueWorker.class);
main.sqs = context.getBean(AmazonSQS.class);
main.mailSender = context.getBean(MailSender.class);
main.mailTemplate = context.getBean(SimpleMailMessage.class);
main.execute();
}
}
private AmazonSQS sqs;
private MailSender mailSender;
private SimpleMailMessage mailTemplate;
private void execute() {
ReceiveMessageResult result = sqs.receiveMessage(new ReceiveMessageRequest(QUEUE_URL));
List<SimpleMailMessage> mails = Lists.newArrayList();
for (Message message : result.getMessages()) {
SimpleMailMessage mail = new SimpleMailMessage(mailTemplate);
mail.setTo(message.getAttributes().get("to"));
mail.setText(message.getBody());
mails.add(mail);
sqs.deleteMessage(new DeleteMessageRequest(QUEUE_URL, message.getReceiptHandle()));
}
mailSender.send(mails.toArray(new SimpleMailMessage[mails.size()]));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment