0
私は現在reactor-coreを探しています。私はMonoを購読することができ、購読者の実行を処理するために使い捨てを保存することもできます。データベースにMonoを購読してディスポーザブルを保存する
Mono<Object> task1 = Mono.just("Task1");
Mono<Object> task2 = Mono.just("Task2");
System.out.println(System.currentTimeMillis());
HashMap<Mono,Disposable> taskHandlerMap = new HashMap<>();
Disposable task1Handler = task1.delayElement(Duration.ofSeconds(5)).subscribe(
(Object x)->{
System.out.println(x.toString() + "\t" + System.currentTimeMillis());
});
taskHandlerMap.put(task1,task1Handler);
Disposable task2Handler = task2.delayElement(Duration.ofSeconds(10)).subscribe(
(Object x)->{
System.out.println(x.toString() + "\t" + System.currentTimeMillis());
});
taskHandlerMap.put(task2,task2Handler);
次のように、ハンドラマップを使用してスケジュールされたタスクを処分することができます。
taskHandlerMap.get(task2).dispose();
このtaskHandlerMapをデータベースに保存できますか?はい、どうすれば保存できますか?そうでなければ、サブスクリプションで作成された使い捨て品を保管する良い方法があります。
これは意味をなさない。なぜあなたはそれをしたいのですか? – akarnokd
@akarnokd必要に応じてスケジュールされたタスクを処分できるように、それらを保存したいと思います。そのために私はそれらをいくつかのデータベースに保存する必要があります。 –
まだ理にかなっていません。データベースにファイルハンドルを格納する場合と同様です。使い捨てのオブジェクトはメモリ内のライブフローを参照するため、データベースに保存したいマップをメモリに保持しない限り、それらを保存して同じオブジェクトを指すように呼び出す方法はありません。 – akarnokd