0

まず第一に、私は非同期処理の分野にかなり慣れていません。私の現在のプロジェクトでは、Spring Boot をプロジェクト リアクター (具体的には Eventbus) と共に使用して、非同期処理を実行しています。イベントバスを使用すると、システムのスケーラビリティも向上すると思います。

これまで、EventBus の使用は、何かを返さない EventBus コンシューマーで何らかの処理を行う場合にかなり制限されていました。構成とプロセッサの例は次のとおりです。

//設定ファイル

@SpringBootApplication
public class Application implements CommandLineRunner {

@Autowired
private EventBus eventBus;

@Autowired
private BatchProcessor batchProcessor;

@Override
public void run(String... arg0) throws Exception {
    eventBus.on("batchProcessor", batchProcessor);

}
}

//消費者

@Service
public class BatchProcesspr implements Consumer<Event<Request>> {

@Override
    public void accept(Event<Request> event) {
      // processing goes here
 }

これまでは、accept メソッドの戻り値の型が void で問題ありませんでした。しかし、現在、プロセッサメソッドから応答を返したいシナリオがあります。または、処理中にエラーが発生した場合は適切な例外をスローする必要があり、いずれの場合も、応答/例外をポイントに戻す必要があります。呼び出し。

これはリアクターを使用して行うことができますか? はいの場合、これの簡単な例を教えてください。Promise について読んだことがありますが、私のケースに似た例が見つかりません。

4

1 に答える 1