- 用户在我们的站点上注册并登录。RegisterUserCommand 被发送到异步命令处理程序。
- 用户想要更改他们的地址,但 RegisterUserCommand 尚未处理。系统中没有用户记录。
这是同步命令处理程序的情况吗?将在验证用户之前创建用户记录。还是我应该在注册后重新考虑对真实用户的要求?在创建帐户之前,用户将无法访问该站点。如果用户不能立即访问系统,则使用率可能会下降。
在 CQRS 系统中混合使用同步和异步命令处理程序是否常见?
这是同步命令处理程序的情况吗?将在验证用户之前创建用户记录。还是我应该在注册后重新考虑对真实用户的要求?在创建帐户之前,用户将无法访问该站点。如果用户不能立即访问系统,则使用率可能会下降。
在 CQRS 系统中混合使用同步和异步命令处理程序是否常见?
我的一切都在 async 中运行。为了简单起见,队列是先进先出的;另外,每个分区有一个处理线程。这种方式命令总是按照发送的顺序处理。此外,我们仍然具有可扩展性,因为每个分区的线程可以简单地变成每个分区的机器,而无需重新分区整个解决方案。
在某些情况下,我们可能需要同步处理(在我的示例中,初始用户注册是用户注册,因为我们需要在服务器上验证一些内容才能让他继续操作)。在这种情况下,命令发送后,用户会看到“请稍等几秒钟,正在处理您的注册”。一旦注册被确认(或失败),用户就会自动进入下一个屏幕。这对于 Web UI 中的 AJAX 来说是微不足道的。桌面 UI 更加简单。