Python функция с запросом может зависнуть, как тайм-аут? - PullRequest
0 голосов
/ 05 марта 2020

Я создаю скрипт для обработки сообщений с помощью модуля O365 (https://pypi.org/project/O365/). Сценарий работает отлично, но по какой-то причине после случайного времени (обычно около 20 часов) он застревает на запросе без ответа, и сценарий просто зависает там в ожидании ответа.

Это не проблема регулирования сервера так как я замедлил свой сценарий до одного запроса каждую минуту, и он все еще зависает.

Я думаю, что это может быть ошибка в модуле O365, когда он не задерживает запросы, поэтому я подумываю сделать вызовы в отдельном потоке, и если он не возвращается через определенное время, убейте его. Но из того, что я понимаю, если я просто попытаюсь присоединиться к потоку, он будет пытаться дождаться его завершения (что никогда), есть ли способ избежать этого?

Спасибо!

1 Ответ

0 голосов
/ 05 марта 2020

Вы можете использовать многопоточность и метод join . Как объяснено в документации: «Это блокирует вызывающий поток до тех пор, пока поток, чей метод join () не будет вызван, не завершится - как обычно, так и через необработанное исключение - или пока не наступит необязательное время ожидания». Ваш запрос будет прекращен либо потому, что он был выполнен, либо потому, что был достигнут максимальный срок.

...