【问题标题】:How to properly send a message to amazon sqs queue with scala?如何使用 scala 正确向亚马逊 sqs 队列发送消息?
【发布时间】:2017-01-27 04:24:00
【问题描述】:

我看过这个common-aws on github 以了解如何使用它,这是他们的示例(仅适用于发件人,因为这是我需要的):

import com.amazonaws.services.sqs.AmazonSQSAsyncClient 
import com.pellucid.wrap.sqs.AmazonSQSScalaClient
import com.mfglabs.commons.aws.sqs._

val sqs = new AmazonSQSScalaClient(new AmazonSQSAsyncClient(), ec)
val builder = SQSStreamBuilder(sqs)

val sender: Flow[String, SendMessageResult, Unit] =
  Flow[String].map { body =>
    val req = new SendMessageRequest()
    req.setMessageBody(body)
    req.setQueueUrl(queueUrl)
    req
  }
  .via(builder.sendMessageAsStream())

但是我遇到了一些错误,我不太明白这个例子,我需要创建一个函数来获取案例类列表,将列表中的每个序列化为 json 并将其发送到 sqs 队列......就是这样,所以这是我到目前为止所尝试的:

val queueUrl = "the url to my queue"

//the objects here are of case class type ObjectUploadRequest
val listOfObjects = List(Obj1, Obj2, Obj3, Obj4, Obj5)

def pushListToSQS(listOfObjectsRequests: List[ObjectUploadRequest]): Future[SendMessageRequest] = {
  listOfObjectsRequests.map(objReq => {
    val ser = swrite(objReq)
    val sender: Flow[String, SendMessageResult, Unit] =
      Flow[String].map { body =>
        val req = new SendMessageRequest()
        req.setMessageBody(body)
        req.setQueueUrl(queueUrl)
        req
      }.via(builder.sendMessageAsStream())
  })
}

我得到了这个错误:

如果有人可以提供帮助,将不胜感激,谢谢

【问题讨论】:

    标签: java scala amazon-web-services message-queue amazon-sqs


    【解决方案1】:

    如果您不介意使用旧的 AWS Java SDK 及其同步 SQS 客户端,那么这对我有用:

    import com.amazonaws.services.sqs.AmazonSQSClient
    import com.amazonaws.services.sqs.model.SendMessageRequest  
    
    val sqs = new AmazonSQSClient()
    
    listOfObjects.foreach { obj =>
        val json = // convert obj to json
    
        sqs.sendMessage(new SendMessageRequest()
            .withQueueUrl("your queue url")
            .withMessageBody(json))
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 2017-02-07
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多