Нет ответа в SQSMessageSuccess при обнаружении лиц внутри видео, загруженного на Amazon s3 - PullRequest
0 голосов
/ 15 января 2020

Я пытался определить лица по видео, хранящемуся на Amazon S3, лица должны быть сопоставлены с коллекцией, в которой есть лица, которые нужно искать в видео. Я использовал Amazon VideoDetect. Мой фрагмент кода выглядит следующим образом:

CreateCollection createCollection = new CreateCollection(collection);
createCollection.makeCollection();
AddFacesToCollection addFacesToCollection = new AddFacesToCollection(collection, bucketName, image);
addFacesToCollection.addFaces();
VideoDetect videoDetect = new VideoDetect(video, bucketName, collection);
videoDetect.CreateTopicandQueue();
try {
  videoDetect.StartFaceSearchCollection(bucketName, video, collection);
  if (videoDetect.GetSQSMessageSuccess())
    videoDetect.GetFaceSearchCollectionResults();
} catch (Exception e) {
  e.printStackTrace();
  return false;
}
videoDetect.DeleteTopicandQueue();
return true;

Кажется, что все работает нормально до StartFaceSearchCollection, и я получаю задание на выполнение задания и очередь. Но когда он пытается go вокруг получить GetSQSMessageSuccess, он никогда не возвращает мне никакого сообщения. Код, который пытается получить сообщение:

   ReceiveMessageRequest.Builder receiveMessageRequest = ReceiveMessageRequest.builder().queueUrl(sqsQueueUrl);
   messages = sqs.receiveMessage(receiveMessageRequest.build()).messages();

Имеет исправить sqsQueueUrl, которые существуют. Но я не получаю ничего в сообщении. По таймауту это дает мне исключение:

software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request: sqs.region.amazonaws.com
    at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97)   

Caused by: java.net.UnknownHostException: sqs.region.amazonaws.com

Так есть ли альтернатива этому, вместо SQSMessage, можем ли мы отслеживать / опрашивать jobId любым другим способом? Или я что-то упускаю ??

1 Ответ

1 голос
/ 15 января 2020

Простой рабочий фрагмент кода для получения сообщения SQS с действительным sqsQueueUrl для дополнительных значений

ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(sqsQueueUrl);
final List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (final Message message : messages) {
    System.out.println("Message");
    System.out.println("  MessageId:     " + message.getMessageId());
    System.out.println("  ReceiptHandle: " + message.getReceiptHandle());
    System.out.println("  MD5OfBody:     " + message.getMD5OfBody());
    System.out.println("  Body:          " + message.getBody());
    for (final Entry<String, String> entry : message.getAttributes().entrySet()) {
        System.out.println("Attribute");
        System.out.println("  Name:  " + entry.getKey());
        System.out.println("  Value: " + entry.getValue());
    }
}
System.out.println();
...