当前位置 : 主页 > 网络推广 > seo >

CQRS:如何检索有关已执行命令的信息?

来源:互联网 收集:自由互联 发布时间:2021-06-16
在我看到的大多数命令接口中,通常有一个“Execute”方法,它接受命令输入并返回void或一些通用结构,指示命令是否成功执行(我们使用后者).现在,我以前从未想过这个,但是我们突然需要了
在我看到的大多数命令接口中,通常有一个“Execute”方法,它接受命令输入并返回void或一些通用结构,指示命令是否成功执行(我们使用后者).现在,我以前从未想过这个,但是我们突然需要了解一些关于命令结果的更多细节,而不是一般的暴露.

请考虑以下示例:

您有一个团队,并且您正在创建一个屏幕,您可以在其中添加成员到您的团队.团队成员显示在“添加新成员”-stuff下面的网格中.现在,当你按“添加新成员”时,你想运行一些jquery / roundohuse / whatever,并将新成员添加到团队成员列表中.到目前为止没有问题,但是:您还希望在每个成员的隐藏字段中包含一些标识数据,并且此id-data来自服务器.

所以问题是:如何从服务器获取该id数据?我通过“ExecuteCommand”方法推送的“AddNewTeamMember”命令并没有给我任何有用的东西,如果我向服务添加一个新的查询方法,例如:“GetLastAddedTeamMember”,那么我可能只是得到最后一个条目由其他人添加(至少如果这是由不同用户非常积极地添加的数据).在某些情况下,您在客户端生成了一个我们可以使用的自然唯一标识符,但对于团队成员我们没有.

鉴于您别无选择,只能在另一个命令完成时更新页面上的小部件,我会看到两个选择:

>拍摄命令,在本地显示指示已提交的内容,然后等待,直到您从服务器收到团队成员列表已更改的通知.更新小部件以反映这一点.
>在提交命令时为命令添加关联ID,并将团队成员临时添加到列表中.当您从服务器收到由于您的相关ID而发生团队成员更新的确认时,请更新您的本地数据.

我建议采用第一种方法,即“临时指标”可以将正常指示的标记版本投入到位;然后,当您最终获得更新时,您应该拥有所需的数据.

鉴于您使用CQRS来解决此问题,我假设您已经经常更新后台发生的那些小部件的内容,因此可能已经解决了“后台更新”问题.

如果没有,我建议你在你的问题空间中抛弃CQRS作为一个过于复杂的解决方案,或者首先解决后台更新问题.

网友评论