【发布时间】:2012-04-30 15:22:06
【问题描述】:
我们创建了一个作为电子书阅读器的 Web 应用程序。所以要记住的一件事是,该领域并不完全是阅读实体书的领域。我们现在正试图通过存储用户访问的电子书页面的信息来收集用户的阅读行为。由于此信息进入数据仓库,我们认为从 bookcontroller 引发事件是正确的方法。
bus.Publish()
但我们不确定它应该是发布还是发送,因为此事件实际上只有一个消费者,那就是我们的商业智能团队。我们还了解到,不建议从 Web 应用程序发布 (http://www.make-awesome.com/2010/10/why-not-publish-nservicebus-messages-from-a-web-application /)。所以现在的替代方法是使用 bus.Send(RecordPageAccessedCommand)
但是上面的命令无论如何都不会改变我们的应用程序状态。那么它真的是一个命令吗?我有一种感觉,我们正在犯的错误是使用 NServiebus 的功能(发布、发送)并试图将其等同于命令或事件。
请告诉我解决方案是什么。
【问题讨论】:
-
是否可以在访问书籍时增加一个计数器?然后,DW 可以稍后仅 ETL 计数。您的应用可能会对这些数据感兴趣,以识别热门书籍或提出建议。
-
@AdamFyles 是的,这是可能的。这就是我们目前所做的。其中有几个事件,出于性能目的,我们希望迁移到基于事件的非阻塞模型。
标签: nservicebus