code: func (adaptor Adapter) Receive() []*api.RunnerResult {
  	params := &sqs.ReceiveMessageInput{
  		QueueUrl:            aws.String(adaptor.QueueURL),
  		MaxNumberOfMessages: aws.Int64(10),
  		VisibilityTimeout:   aws.Int64(1),
  		WaitTimeSeconds:     aws.Int64(1),
  	}
  	resp, err := adaptor.Client.ReceiveMessage(params)
  
  	if err != nil {
  		fmt.Println(err.Error())
  		return nil
  	}
  
  	if len(resp.Messages) == 0 {
  		return nil
  	}
  
  	items := resp.Messages
  	results := make([]*api.RunnerResult, 0)
  	deleteEntries := make([]*sqs.DeleteMessageBatchRequestEntry, 0)
  	for _, item := range items {
  		result, jsonerr := resultFromJSON(*item.Body)
  		if jsonerr != nil {
  			fmt.Println(err.Error())
  			return nil
  		}
  		deleteEntries = append(deleteEntries, &sqs.DeleteMessageBatchRequestEntry{
  			Id:            aws.String(*item.MessageId),
  			ReceiptHandle: aws.String(*item.ReceiptHandle),
  		})
  		results = append(results, result)
  	}
  
  	deleteParams := &sqs.DeleteMessageBatchInput{
  		Entries:  deleteEntries,
  		QueueUrl: aws.String(adaptor.QueueURL),
  	}
  	_, delerr := adaptor.Client.DeleteMessageBatch(deleteParams)
  
  	if delerr != nil {
  		fmt.Println(delerr.Error())
  		return nil
  	}
  
  	return results
  }
docs: // Receive a result, or timeout in 1 second