gpt4 book ai didi

java - 如何使用 scala 正确向亚马逊 sqs 队列发送消息?

转载 作者:行者123 更新时间:2023-12-01 08:58:38 24 4
gpt4 key购买 nike

我见过这个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())
})
}

我收到此错误:

enter image description here

如果有人能提供帮助,我将不胜感激,谢谢

最佳答案

如果您不介意使用旧的 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))
}

关于java - 如何使用 scala 正确向亚马逊 sqs 队列发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41873173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com