このWRITEFUNCTIONが呼び出された回数を制限しようとしています。私はそれを行うことができる方法はありますか?助けのためのどのようにして、書込み機能に対するカールコールの数を制限できますか?
conn.setopt(pycurl.WRITEFUNCTION, on_receive)
ありがとう:writefunctionを定義
!
このWRITEFUNCTIONが呼び出された回数を制限しようとしています。私はそれを行うことができる方法はありますか?助けのためのどのようにして、書込み機能に対するカールコールの数を制限できますか?
conn.setopt(pycurl.WRITEFUNCTION, on_receive)
ありがとう:writefunctionを定義
!
ここではうまくいくはずの汚いシンプルなバージョンです。テストしてより良い方法を見つけるために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"
これは非常に奇妙なことです。 –
どこに書き込みますか?サーバーに送信しているのか、受信していますか?一般的なケースでは、StringIOオブジェクトを渡すか、そこに独自の関数を渡してメモリ内のデータを保持することで、それをだまそうとしてください。関連するコード(少なくともその関数の定義とそれを呼び出すコード)を投稿して、さらに助けることができます。 – TryPyPy
私の問題は、この関数は新しいデータが利用可能なときに呼び出されますが、10回呼び出された後にこの関数を停止する必要があることです。これを行う方法があると思いますか? – Andrew