私のテストでは、テストレベルでFuture
として公開されていないデータベースアクションがいくつかあります。場合によっては、私のテストが速く実行されて、close()
がクリーンアップされた後にデータベースの処理が完了すると、醜いエラーが発生することがあります。飛行中の命令数を検出する方法はありますか、それ以外の場合はclose()
を押し続けてください。Slickで文の実行が完了するまで待つ
0
A
答えて
0
クエリを実行するとFuture[A]
が得られます。ここで、A
はクエリの結果です。
Future.sequence()
を使用してすべてのクエリを作成し、すべてのクエリが結果を返したときに完了する1つの将来を得ることができます。composedFuture
ここでcomposedFuture.map(_ => close())
を使用すると、すべてのクエリの実行が完了し、リソースを閉じることができます。
これは、今後のアクションを公開して作成することをお勧めします。 そうでなければ、Thread.sleep(someSensibleTime)
を入れて、あなたの未来がsomeSensibleTime
以内に完了することを願うかもしれませんが、これはあなたのテストを遅くし、エラーを起こさせます。
0
私はそれが滑らかに依存するのではなく、データベースに依存するかもしれないと思います。
たとえば、mysql技術を使用すると、現在実行中のクエリを「show processlist」というクエリで確認し、それに従って処理することができます。
これはオプションではない場合は、選択した副作用を観察するためにdbをポーリングした後、後でclose()することができますか?
関連する問題
- 1. コマンドが完了するまで待つ
- 2. UWP:invokeScriptAsyncが完了するまで待つ
- 3. タスクが完了するまで待つ
- 4. application.runが完了するまで待つ
- 5. PHPスクリプト内でPerlスクリプトの実行が完了するまで待つ
- 6. Koa.js実行が完了するまで待機する
- 7. オブザーバーがBehaviourSubject /角2で完了するまで実行を待つ方法RxJS
- 8. jQuery - fadeInを実行する前にfadeOutが完了するまで待つ
- 9. jQueryが完了する前にアニメーションが完了するまで待つ
- 10. カスタムアニメーションが完了するまで、viewWillDisappearの実行を待機しますか?
- 11. グレースフルnode.jsのシャットダウンでクリティカルセクションが完了するまで待つ
- 12. サブスクリプションが完了するのを待つ
- 13. フレックスエフェクトが完了するのを待つ
- 14. 結果バックエンドなしでセロリタスクが完了するまで待つ
- 15. ForループでBukkitタスクが完了するまで待つ
- 16. VBA:BloombergのBDP呼び出しが完了するまで待つ
- 17. UIフリーズのない計算が完了するまで待つ
- 18. AngularJSタイムアウトの関数が完了するまで待つ
- 19. IEからのファイルダウンロードが完了するまで待つVBAコード
- 20. レルムの書き込みが完了するまで待つ
- 21. リアクションコンポーネントの更新が完了するまで待つ
- 22. 続行する前にFileReaderが完了するのを待つ
- 23. コードの次の行に進む前に.map()の実行が完了するまで待つ方法
- 24. AppDelegateでCKQueryを実行中 - 完了するまで待ちます
- 25. 操作が完了するまで待つ
- 26. assetForURLブロックが完了するまで待つ
- 27. Watir-Webdriverダウンロードが完了するまで待つ
- 28. リクエストが完了するまで待つ - Python Scrapy
- 29. Cordova SQLiteは挿入が完了するまで待つ
- 30. Python/Scrapyが完了するまで待つ
ええ、問題は、私のAPIが2つの「未来」のうちの1つを返す必要があることです。これにより、他のクエリは難しいものになります。私は終わりに、そのAPIを再考する必要があると思います。 – acjay