Контроль времени ожидания сокетов во внешних библиотеках - PullRequest
1 голос
/ 15 сентября 2011

Я в процессе доработки своего личного сайта, и я наткнулся на небольшую загвоздку, которая, я надеюсь, есть чистый обходной путь:

Я использую различныепакетов ОС для связи со StackExchange (несколько сайтов) и Twitter (только для моего канала).Чтобы ускорить процесс обновления кеша, управляемого мною, я запустил многопоточные запросы, используя универсальный класс QueuedCall (моего собственного дизайна).

Теперь, когда провайдеры работают, все работает отлично.вверх. Однако может зависнуть, если провайдер не работает (чего я, очевидно, хочу избежать).К сожалению, библиотеки, которые я использую, не предоставляют метод установки времени ожидания.Я вижу это так, что у меня есть один из двух вариантов:

  1. Убить потоки вручную после указанного времени ожидания. Я бы хотел избежать этого любой ценой, потому что это просто плохо .
  2. Измените библиотеки так, чтобы они принимали аргумент времени ожидания.Я не особенно хочу вдаваться в подробности, так как это одна из причин того, что я использую сторонние библиотеки для начала;)
  3. (надеюсь, что смогу) установить какое-то глобальное свойство, которое устанавливает тайм-аутчто urllib2 распознает при использовании во внешней библиотеке.

Вопрос: есть ли где-нибудь свойство, которое я могу установить из кода своего приложения для управления тайм-аутами по умолчанию для urllib2?

1 Ответ

2 голосов
/ 15 сентября 2011

Вы ищете

socket.setdefaulttimeout
...