Skip to content

Instantly share code, notes, and snippets.

@calvinlfer
Created October 28, 2016 00:31
Show Gist options
  • Select an option

  • Save calvinlfer/1dabf251bf4026a1fbc8b70ffd6396e1 to your computer and use it in GitHub Desktop.

Select an option

Save calvinlfer/1dabf251bf4026a1fbc8b70ffd6396e1 to your computer and use it in GitHub Desktop.
Example SQS interactions with AWS-Wrap
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain
import com.amazonaws.services.sqs.AmazonSQSAsyncClient
import com.amazonaws.services.sqs.model.{ReceiveMessageResult, SendMessageResult}
import com.github.dwhjames.awswrap.sqs.AmazonSQSScalaClient
import scala.collection.JavaConverters._
import scala.concurrent.{Await, Future}
import scala.language.postfixOps
import scala.concurrent.duration._
implicit val ec = scala.concurrent.ExecutionContext.global
implicit val javaSQSClient = new AmazonSQSAsyncClient(new DefaultAWSCredentialsProviderChain())
val sqsClient: AmazonSQSScalaClient = new AmazonSQSScalaClient(javaSQSClient, ec)
val queueUrl = "https://sqs.us-east-1.amazonaws.com/122324/helloq"
// you might want to batch-send messages
val sendResult: Future[SendMessageResult] = sqsClient.sendMessage(queueUrl, "hello!")
Await.result(sendResult, 10 seconds)
sendResult foreach println
val receiveResult: ReceiveMessageResult = sqsClient.client.receiveMessage(queueUrl)
println(receiveResult)
val batchEntries = receiveResult
.getMessages
.asScala
.map(message => (message.getMessageId, message.getReceiptHandle))
val deleteResult = sqsClient.deleteMessageBatch(queueUrl, batchEntries)
deleteResult.foreach(println)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment