асинхронный HTTP-запрос Python Pycurl

У меня есть скрипт Python, который должен отправлять асинхронные http-запросы.
Запросы должны быть неблокирующими, так как скрипт не обрабатывает и не проверяет возвращаемый текст.
У меня есть код:

data = dict( ... )
url = 'devserv...co.uk'
c = pycurl.Curl()
c.setopt(pycurl.URL, url)
c.setopt(pycurl.USERPWD, 'username:password')
c.setopt(pycurl.SSL_VERIFYPEER, 0)
c.setopt(pycurl.SSL_VERIFYHOST, 0)
c.setopt(pycurl.HTTPHEADER, ['Alert: '+ json.dumps(data)])
#c.perform()
m = pycurl.CurlMulti()
m.add_handle(c)
m.perform()
apply(select.select, m.fdset() + (1,))
m.perform()
return

По причине, которую я не могу определить, данные не отправляются. Когда я раскомментирую строку

c.perform()

и отправить стандартный блокирующий синхронный запрос, он отлично работает.

Я был бы очень признателен, если бы кто-нибудь мог дать мне понять, почему это может быть.


person M. Jacob. A    schedule 22.04.2014    source источник


Ответы (1)


Вам может не понадобиться асинхронный запрос - стандартный подход, похоже, не блокирует.

person user3657465    schedule 20.05.2014
comment
что, если мы захотим выполнить эту задачу 10 раз и захотим ее ускорить? - person ; 17.11.2017