2017-02-08 14 views
0

私の非同期テストに問題があります。灯具として起動しても、竜巻が起動していないようです(私は599を取得します)。私はそれが実際に次の操作を実行して、実行されていることを確認したいと思います:イベントループをブロックすることなく、非同期アプリケーションでスリープします

  1. スタートテスト
  2. リクエストが実際に竜巻に送信される前に、私は長い間「スリープ」への私のコードをしたいと思います私は、トルネードが実際に動作していることをブラウザで手動で確認することができます。

非同期ループをブロックせずにpythonをスリープ状態にするにはどうすればよいですか? time.sleepを実行すると、プロセス全体(したがってループ)がスリープの期間中応答しません。

+0

'time.sleep()'は[現在のスレッドのみをサスペンドします](http://stackoverflow.com/questions/92928/time-sleep-sleeps-thread-or-process)です。コンテキストをよりよく理解できるように、いくつかのコードを提供できますか? – Leon

答えて

1

ご質問の両方がトルネードのFAQに答えている:

http://www.tornadoweb.org/en/latest/faq.html

使用yield gen.sleep(1)はイベントループ上で実行する他のタスクをさせながら、1秒を待つ、または1秒後のコールバックを実行するためにIOLoop.current().add_timeout(1, callback)を使用します。

アプリケーションが複数の要求を同時に処理することを確認するためにブラウザを使用しないでください。ブラウザ自体は同時要求を許可しない可能性があります。代わりにcurlを使用してください。

+0

ありがとうございます。ブラウザは、サーバが実際に起動したかどうかの手動チェックと同様に、複数のリクエストテスタとして使用されることは想定されていませんでした。テストフレームワーク(py.test)によって開始されたのは1つだけですが、いくつかのioloopsが暗黙的に定義されていることが問題でした。だから、実際にはサーバーが起動していないという問題がありました。 – dangonfast

関連する問題