func Main() { var ( SQS *sqs.SQS getUserQueueUrlOutput *sqs.GetQueueUrlOutput getContainerQueueUrlOutput *sqs.GetQueueUrlOutput UserQueueUrl *string ContainerQueueUrl *string Dynamo *dynamodb.DynamoDB socialWorker *workers.SocialWorker ) SQS = sqs.New(&aws.Config{Region: aws.String("cn-north-1")}) getUserQueueUrlOutput, err := SQS.GetQueueUrl(&sqs.GetQueueUrlInput{QueueName: aws.String(USER_QUEUE_NAME)}) if err != nil { glog.Errorln("Error on connect user queue url:", err.Error()) return } UserQueueUrl = getUserQueueUrlOutput.QueueUrl getContainerQueueUrlOutput, err = SQS.GetQueueUrl(&sqs.GetQueueUrlInput{QueueName: aws.String(CONTAINER_QUEUE_NAME)}) if err != nil { glog.Errorln("Error on connect container queue url:", err.Error()) return } ContainerQueueUrl = getContainerQueueUrlOutput.QueueUrl Dynamo = dynamodb.New(&aws.Config{Region: aws.String("cn-north-1")}) socialWorker = workers.NewSocialWorker(SQS, UserQueueUrl, ContainerQueueUrl, Dynamo) socialWorker.Start() }
func get_queue(svc *sqs.SQS, queue string) (*string, error) { params := &sqs.GetQueueUrlInput{ QueueName: aws.String(queue), } resp, err := svc.GetQueueUrl(params) if err != nil { return nil, err } return resp.QueueUrl, nil }
func deleteQueue(s *sqs.SQS, queueName string) { resp, err := s.GetQueueUrl(&sqs.GetQueueUrlInput{QueueName: aws.String(queueName)}) if err != nil { So(err.Error(), ShouldContainSubstring, "AWS.SimpleQueueService.NonExistentQueue") } else { _, e := s.DeleteQueue(&sqs.DeleteQueueInput{QueueUrl: resp.QueueUrl}) So(e, ShouldBeNil) } }
func findQueueURL(sqsService *sqs.SQS, queueName string) string { // check the environment variable first var queueURL string if queueURL = os.Getenv("STREAMMARKER_SQS_QUEUE_URL"); queueURL != "" { return queueURL } // otherwise, query SQS for the queue URL params := &sqs.GetQueueUrlInput{ QueueName: aws.String(queueName), } if resp, err := sqsService.GetQueueUrl(params); err == nil { queueURL = *resp.QueueUrl } else { stdlog.Panicf("Unable to retrieve queue URL: %s", err.Error()) } return queueURL }