- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 CQRS(命令查询责任分离)模式实现一个测试项目。
我有几个问题。
我想在购买前检查用户购物车中某件商品在数据存储中的最新价格。因此,将根据数据存储(产品表)上的最新价格检查真实模型(通过物化 View )价格。如果价格之间存在差异,我想向用户显示警报。实现这一目标的最佳方法是什么?
当用户更新他们的电子邮件和密码时,它应该仍然依赖于创建事件来更新数据存储(事件->事件存储->服务总线->数据存储)还是直接更新数据存储?我不希望延迟触发 read_model_update 的事件,因为用户必须立即重新登录。
最佳答案
I want to check the latest price on the data store for an item on a users shopping cart just prior to purchasing... What is the best way to achieve this?
我怀疑“实现这一目标的最佳方式”在很大程度上取决于您的利益相关者希望为客户提供的购物体验。 IE - 什么时候应该锁定价格?例如,购物车中显示的价格可能是有时间限制的固定报价。
但是请原谅那些细节......
一种方法是在分派(dispatch)命令之前对读取模型运行健全性检查。有一种常见模式(有效地)检查命令在给定读取模型的状态下是否有效,然后调度临时验证的命令以更新记录簿。您可以用一些延迟换取更低的故障率。
另一种可能性是使用流程管理器;这个想法是“placeOrder”不是对模型的简单写入,而是生命周期的开始。因此,假设报价是您模型中的一个东西——当将商品放入购物车时,将生成报价(可能具有一些过期值)。当价格发生变化时,所有不同的报价都会更新。下订单时,处理程序会看到 placedOrder 事件,并尝试对报价调用 acceptQuote 方法;如果报价仍然有效,则生成的事件会将订单流程推进到下一个状态。如果引用不再有效,则生成不同的事件,或者命令被拒绝,最终超时表明可能存在问题....
(您可以尝试对产品本身做一些类似的事情,但由于争用问题,效果不是很好;了解您正在使用最新状态的唯一方法对象是让记录簿接受对其的写入。)
查看 Race Conditions Don't Exist 可能会有用作者:乌迪·达汉。
When the User updates their Email and Password should it still rely on creating events to update the DataStore (Event->EventStore->Service Bus->DataStore) or directly update the Data Store?
没有直接更新——读取模型的所有更新都应该发生在记录簿更新之后。
I don't want a delay of the event triggering the read_model_update as the user will have to log back in immediately.
用户可能会立即重新登录,但这并不意味着您需要立即确认登录。
例如;通过写入模型,您刚刚发布了一堆新事件。获取您发布的最高事件的序列号,并将查询的那部分分派(dispatch)到读取模型;登录处理程序根据读取模型中的可用序列号检查序列号,如果模型需要另一个心跳来跟上,则停止。
(更有可能:在这种用例中,事件发布系统与来自客户端的后续请求之间存在竞争,您将安排一个读取模型,该模型将根据需要查询事件存储。所以你的延迟基本上是读取模型和记录系统之间的网络距离的函数,加上应用新事件所需的时间。实际上,来自客户端的请求充当事件消息,表明高水位线增加,然后模型发送查询以获取丢失的历史记录)。
另请注意推论——读取模型的不同部分具有不同的延迟要求。
CQRS 是一种 shell 游戏。仍然只有一个记录系统,即接受来自模型的写入的持久性存储。该存储针对写入进行了优化。读取模型可以附加到该存储(获取最新的可用数据,但由于数据处于“写入优化”形式,因此具有额外的处理延迟),或者附加到该存储的投影(其中数据较旧,但已经针对具体阅读)。
关于.net - 在 CQRS 模式 + 事件源中读取 "latest data"的使用模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36732230/
我遇到以下问题。我想读取一个包含数百万行和数百列的大型 csv。我想向下转换列的数据类型。我的方法是读取 csv,然后使用 pd.to_numeric() 对其进行向下转换。我不知道列数及其类型。在读
目前,我从 SQL server (2008) 数据库获取数据。 cyurrent的方法是使用DataTable,然后将其传递并使用。 if (parameters != null)
我有以下问题。我有一个巨大的 csv 文件,想用多处理加载它。对于一个包含 500000 行和 130 列不同数据类型的示例文件,Pandas 需要 19 秒。我试过 dask 因为我想多处理阅读。但
是否有关于用于序列化各种 MFC 数据结构的二进制格式的明确文档?我已经能够在十六进制编辑器中查看我自己的一些类,并使用 Java 的 ByteBuffer 类读取它们(使用自动字节顺序转换等)。 但
我正在使用 Selenium 进行测试,我们用 HTML 文件编写测试用例,并用它们制作测试套件,我们的要求是编写足够健壮的测试用例,以根据测试环境改变自身。 为此,我不希望在 HTML 脚本本身中包
我需要一个 JavaScript 代码来读取存储为 .txt 文件的字典(或者也可以保存为任何其他类型的文件。它也可以在线获得)并将其内容存储在一个变量中。我不能找到一种让 JavaScript 像
我正在尝试遍历包含 SSH 登录和其他日志的日志文本文件。 程序正在返回 SSH 登录的总数。 我的解决方案确实有效,但似乎有点慢(在 200mo 文件上大约需要 3.5 秒)。我想知道是否有任何方法
我正在将大量数据从一个电子表格复制到工作簿中的其他 160 个电子表格。目前,Excel (2013) 遇到错误,因为它没有足够的资源来完成操作。 我的目标是将工作表 4 中 V13:XI1150 范
我正在尝试读取一个有 1147 行的文本文件。下面的代码仅读取第 1050-1147 行。我的目标是读取整个文件并提取位于不同行的特定值以在脚本中使用。一个示例是包含“BlockList: 2”的行中
我正在为游戏编写解释器。用户将其移动输入解释器,程序执行该移动。 现在我想为每个决定实现一个时间限制。玩家不应该能够思考超过 30 秒来写一个移动并按下回车。 call_with_time_limit
以this file例如,我正在尝试读取 data.frame 中的数据。来自 the doc (pdf 文件,表 1),它遵循一些 fortran 约定。我尝试了以下但收效甚微: dir 0' 将
我正在使用 R 阅读 Outlook 附件。我的引用在这里:Download attachment from an outlook email using R 这是我的电子邮件的截图: 这每天都会发送
我不会从表格中读取行来将主题放在列表中 php脚本 $url_obj='http://'.$host.':8069/xmlrpc/object'; $sock=new xmlrpc_client($u
我有一个这样的 csv 文件: id,name,value 1,peter,5 2,peter\,paul,3 我如何读取此文件并告诉 R "\," 不表示新列,仅表示 ","。 我必须添加该文件
我正在尝试读取 ~/Library/Preferences/com.apple.mail.plist (在 Snow Leopard 上)以获取电子邮件地址和其他信息以进入“关于”对话框。我使用以下代
This question already has answers here: How do I use floating-point division in bash? (19个回答) 5个月前关闭
本练习的目标是读取输入文件并将其存储到表中,然后验证输入中的某些字段并输出任何错误记录。我需要读取并存储每个策略组,以便表中一次仅存储 5 条记录,而不是整个文件。 所以我需要读取一个包含 5 条记录
据我了解,LWT 插入始终以 SERIAL 一致性级别完成。如果为 true,这是否意味着读取作为 LWT 插入的行可以安全地以 ANY 的一致性级别读取? 换句话说,我假设 LWT 插入是完全一致的
我看到很多很多通过java脚本读取cookie的函数,但我只想在变量中使用它一次,我是JS新手。 这是我的代码 var TheNumber = (Math.random() + '') * 10000
我正在使用 asp.net 和 C#。我在服务器上部署了一个应用程序[已发布],现在我想查看该网站的代码,据我所知,我可以阅读程序集来查看代码。 请告诉我如何实现它。 提前致谢。 最佳答案 您可以使用
我是一名优秀的程序员,十分优秀!