私はTornadoを使用して非同期要求をいくつか行い、1秒ごとに要求します。私はそのようなようにやっている:竜巻:エラー:ハンドルを追加/削除できません - 既に実行中の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()
これは、約1分間動作しますが、その後、私はこのエラーを取得する:
Exception in thread Thread-29: Traceback (most recent call last):
...error: cannot add/remove handle - multi_perform() already running
私はIOLoopとAsyncHTTPClientがすべきこと、これが事実から生じていることを知っていますIOLoop.start()が呼び出されたスレッドからのみアクセスできます。
したがって、IOLoop.start()が呼び出された同じスレッドで常にrepeat()関数が実行されるようにスケジュールするにはどうすればよいですか?
ありがとうございます!実行する必要がありますが、これを後でチェックしてよければそれを受け入れるでしょう – etayluz
このエラーを取得する:pylint] E0602:未定義の変数 'timedelta' – etayluz
'datetime'をインポートし、' datetime.timedelta'を呼び出すだけです – etayluz