У меня проблема с сервисом Bus. У меня есть много сообщений, которые публикуются в служебной шине, которая обрабатывается потребителями за пределами шкалы. Что я видел, так это то, что мой процесс через какое-то время просто зависает с последним сообщением в журналах, которое я вижу t):
File "/home/ubuntu/tvsm-eventhub-consumer/consumers/serviceBusConsumer.py", line 96, in process_msg
msg.complete()
File "/home/ubuntu/.local/lib/python3.6/site-packages/azure/servicebus/common/message.py", line 325, in complete
self._is_live('complete')
File "/home/ubuntu/.local/lib/python3.6/site-packages/azure/servicebus/common/message.py", line 97, in _is_live
raise MessageLockExpired(inner_exception=self.auto_renew_error)
azure.servicebus.common.errors.MessageLockExpired: Message lock expired
Я использую однопроцессорную машину на 2 ГБ за масштабом, установленным в Azure , Когда я смотрю на процесс, он занимает 100% загрузки процессора, но находится в режиме заморозки.
Мои python версии пакетов
azure-servicebus==0.50.2
uamqp==1.2.5
Это код, который я использую
with self.queue_client.get_receiver() as queue_receiver:
lock_time = 300
lock_renewal = AutoLockRenew(max_workers=4)
message = queue_receiver.fetch_next()
msg = message[0]
lock_renewal.register(msg, timeout=lock_time)
proccess msg
msg.complete()
5 минут - это то, что установлено в качестве периода блокировки в сервисной шине. Иногда обработка моего сообщения занимает больше времени. В чем может быть проблема.
Еще одно наблюдение, которое я вижу, - это ошибка
"2020-02-18 04:32:29,245 - ThreadPoolExecutor-0_2 -connection - work - uamqp.c_uamqp - INFO - CBS error occured on connection b'SBReceiver-e2a26b20-7d9b-47b9-bb70-da836bbcc74a'.
2020-02-18 04:32:29,246 - ThreadPoolExecutor-0_2 -receiver - _detach_received - uamqp.receiver - INFO - Received Link detach event: b'amqp:connection:forced'
Link: b'receiver-link-05cabf7d-fd64-4f65-86c0-d5ce4c67b733'
Description: b"The connection was inactive for more than the allowed 240000 milliseconds and is closed by container '2a83654461174e5492f21ff69047ec8d_G15'."
Details: None
Retryable: True
Connection: b'SBReceiver-e2a26b20-7d9b-47b9-bb70-da836bbcc74a'
2020-02-18 04:32:29,246 - ThreadPoolExecutor-0_2 -receiver - on_state_changed - uamqp.receiver - INFO - Message receiver b'receiver-link-05cabf7d-fd64-4f65-86c0-d5ce4c67b733' state changed from <MessageReceiverState.Open: 2> to <MessageReceiverState.Error: 4> on connection: b'SBReceiver-e2a26b20-7d9b-47b9-bb70-da836bbcc74a'
2020-02-18 04:32:29,246 - ThreadPoolExecutor-0_2 -connection - _state_changed - uamqp.connection - INFO - Connection b'SBReceiver-e2a26b20-7d9b-47b9-bb70-da836bbcc74a' state changed from <ConnectionState.OPENED: 9> to <ConnectionState.CLOSE_RCVD: 10>
2020-02-18 04:32:29,264 - ThreadPoolExecutor-0_2 -connection - _state_changed - uamqp.connection - INFO - Connection b'SBReceiver-e2a26b20-7d9b-47b9-bb70-da836bbcc74a' state changed from <ConnectionState.CLOSE_RCVD: 10> to <ConnectionState.END: 13>
2020-02-18 04:32:29,265 - ThreadPoolExecutor-0_2 -connection - _close_received - uamqp.connection - INFO - Received Connection close event: b'amqp:connection:forced'
Connection: b'SBReceiver-e2a26b20-7d9b-47b9-bb70-da836bbcc74a'
Description: b"The connection was inactive for more than the allowed 240000 milliseconds and is closed by container '2a83654461174e5492f21ff69047ec8d_G15'."
После этой ошибки максимальная загрузка процессора.