問題タブ [circuit-breaker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
796 参照

asynchronous - Spring-REST の @Async メソッドを、非同期フォールバックを使用して非同期 @HystrixCommand メソッドに変換する

@Service クラスで @Async としてマークされたメソッドがあります。これは Future 型を返します。

このメソッドは基本的に、別の URL (ここでは URL としてマークされています) でサービスを呼び出すクライアントとして機能します。

この @Async メソッドを次の形式の非同期 @HystrixCommand メソッドに変換したいと考えています。

しかし、これを行うと、コードに次のエラーがスローされます。

return new AsyncResult<Object>() {...}それが言う行のために

コンストラクタ AsyncResult() は未定義です。

Eclipse にエラーを修正するように依頼すると、requestStringObject がコンストラクター パラメーターに追加されます。AsyncResult<Object>(requestString)

また、メソッド@Overrideからを削除するように求められます。invoke()

その言う

タイプ new AsyncResult(){} のメソッド invoke() は、スーパータイプ メソッドをオーバーライドまたは実装する必要があります。

しかし、Eclipseにエラーを修正するように依頼すると、@Override

私の質問は、これらの問題なしで @Async メソッドを非同期 @HystrixCommand メソッドにするにはどうすればよいですか?

また、応答ステータス コードが 200 でない場合にユーザーにデフォルト メッセージを表示する、このメソッドの非同期フォールバックを実装したいと思います。

どうすればこれを行うことができますか?

ありがとうございました。