AWS 开发工具包版本:v1.38.19
Go版本:go1.15.7
高山3.7
我正在使用标准队列,我在我的应用程序中立即初始化 SQS 连接,如下所示;
// Connection connection to the SQS
var Connection *sqs.SQS
// InitSQS initialize the AWS SQS connection
func InitSQS() {
sess := session.Must(session.NewSessionWithOptions(session.Options{
SharedConfigState: session.SharedConfigEnable,
}))
Connection = sqs.New(sess, &aws.Config{
Region: aws.String("eu-west-1"),
DisableSSL: aws.Bool(true),
})
}
Run Code Online (Sandbox Code Playgroud)
我禁用 SSL 因为;当我在应用程序中使用 SSL 时,我遇到内存和 CPU 泄漏(我的应用程序不对世界其他地方开放,顺便说一句,它是我其他应用程序的内部服务)。
这是我用来从 SQS 读取消息的配置:
func ConsumeUpdateMessage(db *database.MySQLWrap, sqsApi queue.SQSAPI) error {
result, err := sqsApi.ReceiveMessage(&sqs.ReceiveMessageInput{
AttributeNames: []*string{
aws.String(sqs.MessageSystemAttributeNameSentTimestamp),
},
MessageAttributeNames: []*string{
aws.String(sqs.QueueAttributeNameAll),
},
QueueUrl: &qURL,
MaxNumberOfMessages: aws.Int64(10),
WaitTimeSeconds: aws.Int64(20),
})
if err …Run Code Online (Sandbox Code Playgroud)