1
我正在使用Tornado進行一些異步請求,並且希望每秒發出一個請求。我這樣做是這樣的:龍捲風:錯誤:無法添加/刪除句柄 - multi_perform()已經在運行
from tornado.httpclient import AsyncHTTPClient
import tornado.ioloop
def repeat():
HTTP_CLIENT.fetch(some_request, handle_response)
threading.Timer(1, repeat).start()
AsyncHTTPClient.configure(max_clients=100)
HTTP_CLIENT = AsyncHTTPClient()
repeat()
tornado.ioloop.IOLoop.current().start()
這適用於約一分鐘,但後來我得到這個錯誤:
Exception in thread Thread-29: Traceback (most recent call last):
...error: cannot add/remove handle - multi_perform() already running
我知道,這是一個事實導致了IOLoop和AsyncHTTPClient應只能從調用IOLoop.start()的線程訪問。
那麼如何安排我的repeat()函數總是在調用IOLoop.start()的同一個線程上運行?
謝謝!需要運行,但我會稍後檢查並接受它,如果它不錯 – etayluz
獲取此錯誤:pylint] E0602:未定義的變量'timedelta' – etayluz
只需要'import datetime'並且它也是'datetime.timedelta' – etayluz