【发布时间】:2018-05-21 09:32:43
【问题描述】:
我目前正在探索reactor-core。我能够订阅 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 我想存储它们,以便在需要时处理一些计划任务。为此,我需要将它们存储在某个数据库中。
-
仍然没有意义。就好像您想将文件句柄存储在数据库中一样。一次性对象指的是内存中的实时流,除非您在内存中保留要存储在数据库中的映射,否则您无法存储它们并调用它们以指向同一个对象...
标签: spring rx-java rx-java2 project-reactor