1

オブジェクトのプールがある場合、使用が非同期である場合、使用後にプールされたオブジェクトを安全にプールに戻すにはどうすればよいですか? (この場合はFutureandを使用)Promise

次に例を示します。

      pool
        .take
        .flatMap {
        connection =>
          connection
            .sendQuery("SELECT 0")
            .map {
            query =>
              pool.giveBack(connection)
              query.rows.get(0, 0)
          }
      }

ここでの問題は、sendQuery呼び出しが失敗した場合、オブジェクトがプールに返されないことです。コード自体が失敗した場合でも、このオブジェクトをプールに安全に返すことを可能にする先物用の何らかのパイプライン シーケンスがありますか、またはこれを無視する必要がありますか?

プールの実装はこれで、プールされたオブジェクトはこれです。

ここでの私の主な目的は、プールの使用でエラーが発生しにくいようにすることです。プログラマーがオブジェクトを返すのを忘れると、プールがすぐに使い果たされる可能性があるため、現状では明らかにそうではありません。

4

1 に答える 1

1

Future の "andThen" メソッドを探しています。

于 2013-04-24T20:40:31.883 に答える