2012-05-14 9 views
0

私はRpcRequestBuilderを使用して、アプリケーションで行うすべてのRPCに対して一般的な変更を行います。 私は自分のRpcRequestBuilderでスロー可能なものを捕まえれば、同じRPCを再起動しようとするべきであることを知っています。理論的には可能ですが、RPCリクエストを再度起動するのと同じことはわかりません。 (はい、私はループに入力しないように注意します:)障害発生後にGWT-RPCリクエストを再起動する

答えて

0

RequestBuilderで単にsend()を呼び出してみましたか?あなたがRequest(またはRequestBuilder)で非同期メソッドを持っている場合

AFAICT、唯一の問題は次のようになり、戻り値の型:Requestは最初のリクエストから1が返されます、2番目の要求は無視され、ひいてはcouldnされます」呼び出し元のコアによって中止されます。そのような場合のために、あなたは本当Request(と、それはスワップできるようにするには、その代表者特別Requestサブクラスを返すようにsend()をオーバーライドし、あなたのRpcRequestBuildercreate()方法からRequestBuilderのサブクラスを返す必要があるだろうことを可能にするに
、再試行に対応するものを設定することができます)。

+0

私は実際にこのような非同期サービスを持っていませんが、最初のrpcが失敗したため(AsyncCallbackのonFailure(Throwable)を実行しました)、本当に問題にはならないでしょうか? 2番目の要求として、期待される結果でonSuccessを起動します。 私はあなたに例を挙げることができます: いくつかの種類のセッション管理を使用し、すべてのRPCでセッションの有効性を確認するとします。今、セッションが「タイムアウト」として検出された場合、ログインボックスが表示され、ログインが成功した後、タイムアウト/ログイン画面を生成した最初のrpcを繰り返したいとします。 send()を使用してこれを行うことはできますか? –

関連する問題