我试图理解反应性范式,但逻辑似乎与我的需求背道而驰。
这种情况是注册过程的早期阶段:从注册数据开始,检查提供的电子邮件是否存在帐户(将帐户返回到或null)并从那里进行处理。使用命令式方法,这很容易;账户上的分支==null。但对于反应型范式,我无法理解。
如果我正在处理帐户,并用中的某个内容替换null,那就好了。但在这个例子中,它实际上是颠倒的:当我返回null时,即没有帐户存在,我想进行主要处理以创建帐户,而当它不是null时,我想使用错误等价的回退。
我发现唯一可行的方法是首先使用命令分支来包装反应元素,根据:
public ResponseDto registerAccount (RegistrationDto data)
ResponseDto responseDto = new ResponseDto ();
if (accountExists(data.getEmail()) {
// return responseDto with account-exists error messaging
} else {
// create the account, send verification email, etc
// return responseDto with information that verification is sent
}
}
public boolean accountExists (String email) {
return retrieveAccount(email)
.hasElement().block();
}
public Mono<AccountDto> retrieveAccount (String email) {
// calls db service; returns either the Mono-wrapped AccountDto or Mono-wrapped null.
}
考虑到我正被推下被动路径,我宁愿避免这种混合方法。
如果处理的主体取决于单声道为空,而错误状态的等价物是当它有要处理的内容时,我该如何处理结果?
您离反应路径只有一步之遥:
public Mono<ResponseDto> registerAccount(RegistrationDto data) {
return retrieveAccount(data.getEmail())
.hasElement()
.flatMap(accountExists -> {
if (accountExists) {
// return responseDto with account-exists error messaging
} else {
return createAccount(data);
}
});
}
public Mono<AccountDto> retrieveAccount(String email) {
// calls db service; returns either the Mono-wrapped AccountDto or Mono-wrapped null.
}
private Mono<ResponseDto> createAccount(RegistrationDto data) {
// create the account, send verification email, etc
// return responseDto with information that verification is sent
}
本文向大家介绍Java如何获取当前进程ID以及所有Java进程的进程ID,包括了Java如何获取当前进程ID以及所有Java进程的进程ID的使用技巧和注意事项,需要的朋友参考一下 首先是获取当前Java运行的Java进程ID,这个是网上常见的,也就是Java程序自身将进程ID打印出来: 运行结果: ManagementFactory是一个在运行时管理和监控Java VM的工厂类,它能提供很多管理V
在 Electron 中,运行 package.json 主脚本的过程称为主进程 (main process)。在主进程中运行的脚本可以通过创建网页来显示其图形化界面。 摘自 Electron 文档 由于 main 进程本质上是一个完整的 node 环境,所以除了以下两个文件之外,并没有什么初始的项目结构。 src/main/index.js 这个文件是你应用程序的主文件,electron 也从这
问题内容: 我想使用模块来完成此操作。 当我这样做时,例如: 我启动一个父进程,然后让父进程产生一个子进程, 然后我希望父进程退出自身,但子进程继续工作。 请允许我写一个 错误 代码来解释一下自己: 那么,我如何启动一个在父进程完成时不会被杀死的进程? 20140714 大家好 我的朋友刚刚告诉我一个解决方案… 我只是想… 无论如何,只要让您看到: 这确实有效!! 问题答案: 一个技巧:调用以退出
进程(process)是正在运行的程序的实例,但一个程序可能会产生多个进程。比如,打开 Chrome 浏览器程序,它可能会产生多个进程,主程序需要一个进程,一个网页标签需要一个进程,一个插件也需要一个进程,等等。 每个进程都有自己的地址空间,内存,数据栈以及其他记录其运行状态的辅助数据,不同的进程只能使用消息队列、共享内存等进程间通讯(IPC)方法进行通信,而不能直接共享信息。 fork() 在介
问题内容: 我想产生长时间运行的子进程,这些子进程在主进程重新启动/死亡时仍然存在。从终端运行时,这工作正常: 请注意,父进程被杀死后,子进程仍处于活动状态。但是,如果我像这样从systemd启动主进程… …然后当我杀死主要过程时,孩子也死了: 我怎样才能使孩子生存呢? 在CentOS Linux版本7.1.1503(Core)下运行go版本go1.4.2 linux / amd64。 问题答案:
问题内容: 我正在使用ProcessBuilder启动子进程,并且如果父进程确实需要退出子进程。在正常情况下,我的代码可以正确阻止孩子。但是,如果我导致操作系统杀死父进程,则子进程将继续运行。 有什么方法可以将子进程“绑定”到父进程,以便在父进程被杀死时退出? 问题答案: 子进程与其父进程之间没有联系。他们可能彼此知道进程ID,但是它们之间没有硬连接。您在谈论孤立过程。这是操作系统级别的问题。意味