Написал клиенту простейший скрипт с использованием
pycurl (я его всегда, кстати, использую), который состоит буквально из одного
get-запроса, а при использовании этого скрипта под
Linux, начала периодически валиться ошибка
Segmentation fault и обрывать работу скрипта. Как выяснилось надо было вставить следующий кусочек кода, чтобы этого не происходило:
import sys
import pycurl
try:
import signal
from signal import SIGPIPE, SIG_IGN
signal.signal(signal.SIGPIPE, signal.SIG_IGN)
except ImportError:
pass
Пока не пробовал, но чтобы не забыть решил записать.
Можно еще вот так:
ОтветитьУдалитьself.curl.setopt(pycurl.NOSIGNAL, 1)
Юзал бы grab, там эти фишки уже давно учтены :)
ОтветитьУдалитьА можешь что нибудь про Twisted написать для нашего дела сеошного?)
ОтветитьУдалитьда, именно ответ balcon'а - самое правильное решение.
ОтветитьУдалитькстати, хочу спросить присутствующих, не покажете грамотный пример использования CurlMulti на реальной задаче (можно ссылку на репо проекта)? Документация, идущая с pycurl описывает CurlMulti поверхностно и путано. Спасибо.
Николай, а объясни, пожалуйста:
ОтветитьУдалить1. зачем импортишь sys?
2. что весь этот вышеуказанный код означает?
Да это скопировал лишнее, в общем смотри пост balcon'а, а на мой забей=)
ОтветитьУдалить