Как я могу ограничить количество вызовов curl функцией write? - PullRequest
2 голосов
/ 17 января 2011

Я пытаюсь ограничить количество раз, когда вызывается эта функция Есть ли способ, которым я могу это сделать?

определение функции записи:

conn.setopt(pycurl.WRITEFUNCTION, on_receive)

Спасибо за помощь!

1 Ответ

1 голос
/ 17 января 2011

Вот простая грязная версия, которая должна работать.Сборка PycURL для тестирования и поиска лучшего способа.

import pycurl, json

STREAM_URL = "http://chirpstream.twitter.com/2b/user.json"

USER = "segphault"
PASS = "XXXXXXXXX"

class LimitError(Exception): pass

counter = 0
limit = 10
def on_receive(data):
    global counter
    if counter < 10:
        print data
        counter += 1
    else:
        raise LimitError    
conn = pycurl.Curl()
conn.setopt(pycurl.USERPWD, "%s:%s" % (USER, PASS))
conn.setopt(pycurl.URL, STREAM_URL)
conn.setopt(pycurl.WRITEFUNCTION, on_receive)

try:
    conn.perform()
    print "Exited Normally"
except LimitError:
    print "Reached limit, exiting"
except pycurl.error:
    if counter == limit:
        print "pycurl expected error, nothing to worry about"
    else:
        raise
finally:
    conn.close()

print "All done"
...