我正在使用 JOliver 的 EventStore,现在我正在使用同步调度程序,这样当命令进入时,它会由我的命令处理程序处理,然后保存在事件存储中,然后我的事件处理程序更新我的读取模型。在这个阶段我没有使用 NServiceBus,但我希望稍后介绍它。我的 eventstore 数据库和 readmodel 在同一台机器上。
我注意到的是,如果在我的事件处理程序中引发异常(并且因为我没有使用 DTC),则事件将在事件存储中提交,并且调度标志设置为 false。这是我所期望的,但是当我重新启动服务器时,该标志设置为 true,但从未调用事件处理程序代码。
任何想法为什么会发生这种情况?
我假设任何未调度的事件都会被调度,或者在事件存储代码中会有一些重试机制。