gpt4 book ai didi

amazon-web-services - 转到 AWS SQS SDK : How to check if session is connected/disconnected

转载 作者:数据小太阳 更新时间:2023-10-29 03:15:05 25 4
gpt4 key购买 nike

var svc *sqs.SQS = nil

func returnSvcInstance() *sqs.SQS{


if svc == nil || condition (check if not connected) { //check if it is connected?

sess := session.New(&aws.Config{
Region : aws.String(REGION),
Credentials: CREDS,
})

svc = sqs.New(sess)
}

return svc
}

我正在编写一个方法,如果实例为 nil 或未连接则返回实例。如何检查它是否仍然连接?

最佳答案

我的解决方案是在多次迭代后没有收到消息的情况下,将一条消息插入到队列中,该消息具有易于挑选的值。事实上,我挂了一个 goroutine,但我用它来排除 SQS 连接。

我称它为 pingcounter 并做了类似的事情:

pingCounter := 0
for {
if debug {
log.Println("worker: Start polling")
}
if pingCounter > 9 {
params := &sqs.SendMessageInput{
QueueUrl: aws.String(queueName),
MessageBody: aws.String("PING"),
}
_, err := svc.SendMessage(params)
if awsErr, ok := err.(awserr.Error); ok {
log.Println(awsErr.Message())
} else {
log.Println(err)
}
...gather messsages and do stuff...
if not:
pingCounter++

我的工作人员代码获取任何充满 PING 的消息并将其写入日志,然后将其删除。除了以可验证的方式使用它们之外, session 和服务对象不提供任何其他方法来测试连接。

关于amazon-web-services - 转到 AWS SQS SDK : How to check if session is connected/disconnected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38196726/

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