У меня есть сервер, который делает «некоторые вещи» в разделе, и у меня есть «с gevent.Timeout (5)» вокруг этого. У меня есть некоторые проверки, происходящие в другой зеленее, и через это я заметил, что одна из зелий, которая делала это «кое-что», работала на 45 минут. Мне пришлось в конце концов перезапустить программу, чтобы убить ее (я знаю о других способах ее убить, но это не проблема ..).gevent.Timeout не поставлено
I обезьяна patching используя gevent.monkey.patch_all() также. Часть «некоторых вещей» связана с сетевыми подключениями, и я предполагаю, что что-то застряло в одном из этих мест. Я не понимаю, почему исключение тайм-аута не было поднято. Кто-нибудь может понять, почему исключение gevent.Timeout не могло быть поднято?
Я думаю, что второй аргумент как False или None не должен иметь значения? И после блока gevent.Timeout у меня было заявление о возврате, поэтому, очевидно, мой код застрял где-то в этом блоке. Я не мог использовать результат if: == None: statement. Я не могу повторить проблему локально. Это было на рабочем сервере. Я мог бы попробовать свое собственное исключение, но я должен снова решить проблему, и даже если могу, интересно, мое исключение вообще будет брошено, потому что раньше оно не было раньше. – Nitin
Сказка такая же старая, как и время :-) FWIW, нам потребовалось немного времени, чтобы поработать с 'gevent.Timeout', и в конце концов с использованием' False' и проверки 'None' в результате работал на нас. Если ваша сетевая связь - это настройки для HTTP, я могу указать вам на некоторые из наших модульных тестов, которые могут помочь вам перечитать таймауты. –
Это не HTTP-запрос, а соединение с базой данных, и у меня есть сильное чувство, что это связано с сокетами. Я нашел еще одну ошибку в gevent, связанную с тайм-аутами сокетов, если вы используете makefile - [link] (https://bitbucket.org/denis/gevent/commits/65968cf1baa9/). Но, конечно, было бы полезно проверить, как выглядят ваши тесты модулей, и если я могу воспроизвести проблему локально. Я не понимаю, почему использование False должно тренироваться. Я тоже должен подумать об этом. – Nitin