作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我想要一个由某个事件创建的传奇,然后坐下来等待几个小时,如果没有任何 react ,发送一些命令。
现在,如果这个 Saga 全部在内存中并且我不得不重新启动应用程序/服务器,那么这个 saga 将被卸载并且再也看不到了,对吧?
一旦系统重新上线,我会使用事件溯源来加快这个 Saga 的速度吗?
如果是这样,我几乎需要一个单独的事件存储,其中包含可以在系统启动时重播的“事件传奇”,以使我的传奇加快速度。到目前为止对我来说似乎很好,但是我将如何实现超时?
我需要某种方式在重播时“伪造”超时,考虑到可能有多个后续超时,具体取决于进入传奇的事件。
最佳答案
实现此功能的最佳方法是使用另一个端点,该端点能够在某个时间点将消息返回给您。例如,您的传奇可能会向这个“超时管理器”发送一条消息,并说在 1 小时或 1 天甚至 1 年内唤醒我。届时,该消息将返回给您。理想情况下,此消息将具有导致操作发生的商业意义。
也许最好的例子是客户注册,如果客户在注册后 7 天内没有确认他们的帐户,你会通过电子邮件通知他们。 “超时消息”实际上是:RemindUserToConfirmAccountMessage。当 7 天后 saga 收到此消息时,saga 将根据其当前状态确定是否需要处理该消息以及是否需要发送客户电子邮件。但是如果用户已经确认了他/她的帐户,则可以不采取任何行动而丢弃该消息。
关于cqrs - 带有事件溯源的基于时间的 Sagas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7717298/
我是一名优秀的程序员,十分优秀!