Как убедиться, что сообщение будет находиться в очереди 10 минут - PullRequest
0 голосов
/ 27 июня 2019

У меня есть два приложения App1 Console app и App2 Azure func App

App1 is for enroll new customer App2 is for activate account for new customer

Мы need to ensure that each message that App1 sends is stored in a queue for 10 minutes before App2 uses the message

Из приложения 1 я беру такие данные, как идентификатор клиента, имя клиента и отправляю это сообщение в очередь. используя простой код -

// Create a new message to send to the queue
                    string messageBody = $"Message {i}";
                    var message = new Message(Encoding.UTF8.GetBytes(messageBody));

                    // Write the body of the message to the console
                    Console.WriteLine($"Sending message: {messageBody}");

                    // Send the message to the queue
                    await queueClient.SendAsync(message);

мне нужно добавить какие-либо настройки для сценария на 10 минут?

Из App2 Мне нужно прочитать это сообщение, но нужно убедиться, что App2 использует это сообщение в течение 10 минут. Как этого добиться, чтобы сообщение находилось там в течение 10 минут в очереди.

Когда я искал в стеке поток, я нашел это If a message is added with a 5 minute timeout it will only be processed after that. это значит при отправке сообщения мне нужно что-то установить?

1 Ответ

2 голосов
/ 27 июня 2019

Похоже, вы ищете Запланированные сообщения .

Вы можете отправлять сообщения в очередь или тему для отложенной обработки;например, чтобы запланировать задание, чтобы оно стало доступным для обработки системой в определенное время.Эта возможность реализует надежный распределенный планировщик на основе времени.

Запланированные сообщения не материализуются в очереди до определенного времени постановки в очередь.До этого времени запланированные сообщения могут быть отменены.Отмена удаляет сообщение.

Вы можете запланировать сообщения либо установив свойство ScheduledEnqueueTimeUtc при отправке сообщения через обычный путь отправки, либо явно с помощью API ScheduleMessageAsync .Последний немедленно возвращает SequenceNumber запланированного сообщения, который можно позже использовать для отмены запланированного сообщения, если это необходимо.Запланированные сообщения и их порядковые номера также можно обнаружить с помощью Просмотр сообщений .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...