У меня возникли проблемы с использованием AutoLockRenewer(). У меня есть приложение со временем обработки сообщений до 20 минут, и я хочу соответственно установить блокировку сообщений на 20 минут.
def receive_messages(self, max_message_count: int) -> List[ServiceBusReceivedMessage]:
try:
received_messages = self._receiver.receive_messages(max_message_count=max_message_count,
max_wait_time=self.max_wait_time)
for message in received_messages:
self._auto_lock_renewer.register(
receiver=self._receiver,
renewable=message,
max_lock_renewal_duration=1200
)
self._completion_queue.append(ReceivedMessageInfo(message))
return received_messages
except (ServiceBusError, WebSocketConnectionClosedException) as e:
logging.error(f"Error in receiving messages: {e}. Reinitializing receiver.")
self._receiver = self._initialize_receiver()
return []
К сожалению, когда я устанавливаю max_lock_renewal_duration=1200, я получаю эту ошибку в журналах, где четко видно 5-минутное ограничение блокировки. И max_lock_renewal_duration этого не меняет. Может ли кто-нибудь предложить способ заблокировать сообщение и продлить его блокировку на время выполнения функции обработки (скажем, 20 минут)?
Журналы:
2025-01-10 21:10:23,387 - DEBUG - got bool_launch_service_bus True so launching service bus
2025-01-10 21:10:23,387 - DEBUG - Launch time: 10/01/2025 21:10:23
2025-01-10 21:10:54,846 - DEBUG - Running lock auto-renew for ServiceBusReceivedMessage(body={
"CorrelationId": "id",
"MessageType": type,
"BlobNameRequest": null,
"FileId": "id",
"BatchId": id,
"DocumentId": 0,
"Body": "{}",
"CoreError": null
}, application_properties={b'SiteEnv': b'local', b'CoreEnv': b'local'}, session_id=None, message_id=f3c75e6a2cde4fea9aa22700f273b8a6, content_type=application/json, correlation_id=None, to=None, reply_to=None, reply_to_session_id=None, subject=None, time_to_live=14 days, 0:00:00, partition_key=None, scheduled_enqueue_time_utc=None, auto_renew_error=None, dead_letter_error_description=None, dead_letter_reason=None, dead_letter_source=None, delivery_count=0, enqueued_sequence_number=13473, enqueued_time_utc=2025-01-10 19:11:05.117000+0 for None seconds
2025-01-10 21:15:53,794 - DEBUG - Running lock auto-renew for ServiceBusReceivedMessage(body={
"CorrelationId": "id",
"MessageType": type,
"BlobNameRequest": null,
"FileId": "id",
"BatchId": id,
"DocumentId": 0,
"Body": "{}",
"CoreError": null
}, application_properties={b'SiteEnv': b'local', b'CoreEnv': b'local'}, session_id=None, message_id=f3c75e6a2cde4fea9aa22700f273b8a6, content_type=application/json, correlation_id=None, to=None, reply_to=None, reply_to_session_id=None, subject=None, time_to_live=14 days, 0:00:00, partition_key=None, scheduled_enqueue_time_utc=None, auto_renew_error=None, dead_letter_error_description=None, dead_letter_reason=None, dead_letter_source=None, delivery_count=1, enqueued_sequence_number=13473, enqueued_time_utc=2025-01-10 19:11:05.117000+0 for None seconds
2025-01-10 21:15:55,725 - DEBUG - 10 seconds or less until lock expires - auto renewing.
2025-01-10 21:15:56,021 - DEBUG - Management operation completed, id: 'd85d5299-17e4-42cf-90a9-228360e06f95'; result: ; code: 410; description: b'The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue. For more information please see https://aka.ms/ServiceBusExceptions . Reference:c99fe38a-45c0-4cbb-9b15-0b16ff2ef556, TrackingId:1277d4c5-573e-498a-8419-58f1d0115ff0_B17, SystemTracker:raccoondoc-dev-servicebus:Topic:deskew|local, Timestamp:2025-01-10T19:16:07', error: None
2025-01-10 21:15:56,022 - INFO - AMQP error occurred: (None), condition: (b'com.microsoft:message-lock-lost'), description: ("Message lock renew failed. b'The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue. For more information please see https://aka.ms/ServiceBusExceptions . Reference:c99fe38a-45c0-4cbb-9b15-0b16ff2ef556, TrackingId:1277d4c5-573e-498a-8419-58f1d0115ff0_B17, SystemTracker:raccoondoc-dev-servicebus:Topic:deskew|local, Timestamp:2025-01-10T19:16:07'.").
2025-01-10 21:15:56,022 - DEBUG - Failed to auto-renew lock: MessageLockLostError("Message lock renew failed. b'The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue. For more information please see https://aka.ms/ServiceBusExceptions . Reference:c99fe38a-45c0-4cbb-9b15-0b16ff2ef556, TrackingId:1277d4c5-573e-498a-8419-58f1d0115ff0_B17, SystemTracker:raccoondoc-dev-servicebus:Topic:deskew|local, Timestamp:2025-01-10T19:16:07'. Error condition: com.microsoft:message-lock-lost. Status Code: 410."). Closing thread.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ve-minutes
Как настроить AutoLockRenewer() для полученных сообщений длительностью более пяти минут? ⇐ Python
Программы на Python
1736542567
Anonymous
У меня возникли проблемы с использованием AutoLockRenewer(). У меня есть приложение со временем обработки сообщений до 20 минут, и я хочу соответственно установить блокировку сообщений на 20 минут.
def receive_messages(self, max_message_count: int) -> List[ServiceBusReceivedMessage]:
try:
received_messages = self._receiver.receive_messages(max_message_count=max_message_count,
max_wait_time=self.max_wait_time)
for message in received_messages:
self._auto_lock_renewer.register(
receiver=self._receiver,
renewable=message,
max_lock_renewal_duration=1200
)
self._completion_queue.append(ReceivedMessageInfo(message))
return received_messages
except (ServiceBusError, WebSocketConnectionClosedException) as e:
logging.error(f"Error in receiving messages: {e}. Reinitializing receiver.")
self._receiver = self._initialize_receiver()
return []
К сожалению, когда я устанавливаю max_lock_renewal_duration=1200, я получаю эту ошибку в журналах, где четко видно 5-минутное ограничение блокировки. И max_lock_renewal_duration этого не меняет. Может ли кто-нибудь предложить способ заблокировать сообщение и продлить его блокировку на время выполнения функции обработки (скажем, 20 минут)?
Журналы:
2025-01-10 21:10:23,387 - DEBUG - got bool_launch_service_bus True so launching service bus
2025-01-10 21:10:23,387 - DEBUG - Launch time: 10/01/2025 21:10:23
2025-01-10 21:10:54,846 - DEBUG - Running lock auto-renew for ServiceBusReceivedMessage(body={
"CorrelationId": "id",
"MessageType": type,
"BlobNameRequest": null,
"FileId": "id",
"BatchId": id,
"DocumentId": 0,
"Body": "{}",
"CoreError": null
}, application_properties={b'SiteEnv': b'local', b'CoreEnv': b'local'}, session_id=None, message_id=f3c75e6a2cde4fea9aa22700f273b8a6, content_type=application/json, correlation_id=None, to=None, reply_to=None, reply_to_session_id=None, subject=None, time_to_live=14 days, 0:00:00, partition_key=None, scheduled_enqueue_time_utc=None, auto_renew_error=None, dead_letter_error_description=None, dead_letter_reason=None, dead_letter_source=None, delivery_count=0, enqueued_sequence_number=13473, enqueued_time_utc=2025-01-10 19:11:05.117000+0 for None seconds
2025-01-10 21:15:53,794 - DEBUG - Running lock auto-renew for ServiceBusReceivedMessage(body={
"CorrelationId": "id",
"MessageType": type,
"BlobNameRequest": null,
"FileId": "id",
"BatchId": id,
"DocumentId": 0,
"Body": "{}",
"CoreError": null
}, application_properties={b'SiteEnv': b'local', b'CoreEnv': b'local'}, session_id=None, message_id=f3c75e6a2cde4fea9aa22700f273b8a6, content_type=application/json, correlation_id=None, to=None, reply_to=None, reply_to_session_id=None, subject=None, time_to_live=14 days, 0:00:00, partition_key=None, scheduled_enqueue_time_utc=None, auto_renew_error=None, dead_letter_error_description=None, dead_letter_reason=None, dead_letter_source=None, delivery_count=1, enqueued_sequence_number=13473, enqueued_time_utc=2025-01-10 19:11:05.117000+0 for None seconds
2025-01-10 21:15:55,725 - DEBUG - 10 seconds or less until lock expires - auto renewing.
2025-01-10 21:15:56,021 - DEBUG - Management operation completed, id: 'd85d5299-17e4-42cf-90a9-228360e06f95'; result: ; code: 410; description: b'The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue. For more information please see https://aka.ms/ServiceBusExceptions . Reference:c99fe38a-45c0-4cbb-9b15-0b16ff2ef556, TrackingId:1277d4c5-573e-498a-8419-58f1d0115ff0_B17, SystemTracker:raccoondoc-dev-servicebus:Topic:deskew|local, Timestamp:2025-01-10T19:16:07', error: None
2025-01-10 21:15:56,022 - INFO - AMQP error occurred: (None), condition: (b'com.microsoft:message-lock-lost'), description: ("Message lock renew failed. b'The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue. For more information please see https://aka.ms/ServiceBusExceptions . Reference:c99fe38a-45c0-4cbb-9b15-0b16ff2ef556, TrackingId:1277d4c5-573e-498a-8419-58f1d0115ff0_B17, SystemTracker:raccoondoc-dev-servicebus:Topic:deskew|local, Timestamp:2025-01-10T19:16:07'.").
2025-01-10 21:15:56,022 - DEBUG - Failed to auto-renew lock: MessageLockLostError("Message lock renew failed. b'The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue. For more information please see https://aka.ms/ServiceBusExceptions . Reference:c99fe38a-45c0-4cbb-9b15-0b16ff2ef556, TrackingId:1277d4c5-573e-498a-8419-58f1d0115ff0_B17, SystemTracker:raccoondoc-dev-servicebus:Topic:deskew|local, Timestamp:2025-01-10T19:16:07'. Error condition: com.microsoft:message-lock-lost. Status Code: 410."). Closing thread.
Подробнее здесь: [url]https://stackoverflow.com/questions/79346997/how-to-set-autolockrenewer-for-received-messages-for-more-than-five-minutes[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия