【发布时间】:2010-05-05 05:40:57
【问题描述】:
让我首先定义问题以及选择消息队列的原因。我有一个数据层,它将是事务性的,并且会大量插入,而不是在这些问题发生时尝试处理它们。我希望从头开始实现我的应用程序。
我决定通过使用 Microsoft 消息队列来解决这个问题,并在时间允许的情况下异步执行插入。但是我很快就遇到了问题。我执行的某些插入可能需要立即召回(即:检索)(想象这是针对 POS 系统的,如果您需要召回最后一笔交易会发生什么 - 一个仍未插入的交易)。
我决定解决这个问题的方法是抽象 MessageQueue 并将其组合到我的数据访问层中,从而产生一组数据返回给数据层用户的错觉(我已经考虑过其他问题发生在这种情况下(即:本质上是脏读等)并且出于我的目的得出结论,我可以控制这些问题)。
然而,这就是事情变得有点糟糕的地方......我已经弄清楚了如何取回消息等等(足够微不足道的问题),但我被卡住的地方是;如何创建查询我的消息队列的通用(或至少有些通用)方式?我可以最大限度地减少 SQL 查询和 MessageQueue 查询之间的重复。我考虑过使用 LINQ(但对该技术的了解非常有限),并且还尝试了使用 Predicates 的实现,但到目前为止还很臭。
对于这样的问题,我可以利用任何模式吗?我会以错误的方式解决这个问题吗?有没有人对我如何解决这个问题有任何自己的想法?有人甚至明白我在说什么吗? :-)
任何和所有的输入都将受到高度赞赏和认真考虑......
再次感谢。
对于任何有兴趣的人。我决定在 最后简单地缓存 在另一个地点进行交易和 按照预期和描述使用 MSMQ 下面。
【问题讨论】:
标签: asp.net vb.net generics design-patterns message-queue