Skip to content

Instantly share code, notes, and snippets.

@YoshihitoAso
Last active December 14, 2015 16:09
Show Gist options
  • Save YoshihitoAso/5113242 to your computer and use it in GitHub Desktop.
Save YoshihitoAso/5113242 to your computer and use it in GitHub Desktop.
[AWS][SQS]AWS SQSのサンプルプログラム
public class QueueWorker {
private static final String QUEUE_URL="...";
public static void main(String[] args) {
QueueWorker main = new QueueWorker();
ClasspathPropertiesFileCredentialsProvider provider = new ClasspathPropertiesFileCredentialsProvider("aws.properties");
AmazonSQSClient amazonSQSClient = new AmazonSQSClient(provider);
main.sqs = amazonSQSClient;
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.example.com");
mailSender.setPort(25);
mailSender.setUsername("y-aso");
mailSender.setPassword("p@ssw0rd");
main.mailSender = mailSender;
SimpleMailMessage mailTemplate = new SimpleMailMessage();
mailTemplate.setSubject("QueueWorker sample");
mailTemplate.setFrom("yoshihito@example.com");
main.mailTemplate = mailTemplate;
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