如何在消息发布之前更新消息

本文关键字:布之前 更新 新消息 消息 | 更新日期: 2023-09-27 18:05:26

我正在对一堆消息进行排队,队列最终将这些消息作为记录传递到sql server数据库。我需要更新消息以显示将要传递消息的datetime。当我思考这个问题时,我的要求听起来不合逻辑;然而,是否有一种方法或有一个事件,我可以订阅获得datetime之前的消息交付?

var msgQ = new MessageQueue(_myque);
msgTx.Begin();
msgQ.Send(message, msgTx);
msgTx.Commit();

请注意,我无法对数据库进行任何更改,并且需要通过。net代码解决此问题。

如何在消息发布之前更新消息

下面的示例将把消息推送到消息队列中,然后在一小段延迟后接收它:

首先,要发送的消息:

public class Order
{
    public int orderId;
    public DateTime orderDate;
    public DateTime receivedDate;
};

发送新的Order,稍等,然后从队列中接收:

// a private queue - set to applicable queue path.
var myQueue = new MessageQueue(".''private$''myQueue");
myQueue.Send(new Order { orderId = 1, orderDate = DateTime.Now});
// a 10 second delay to demonstrate an infrastructure 
// delay between the send and receive   
Thread.Sleep(new TimeSpan(0, 0, 10));
var message = myQueue.Receive();
var receivedOrder = (Order)message.Body;
receivedOrder.receivedDate = DateTime.Now;  
Console.WriteLine(string.Format("Order {0} sent at {1}, received at {2}", receivedOrder.orderId, receivedOrder.orderDate, receivedOrder.receivedDate));