2008-09-15 26 views
4

C# içinde bir kuyruktan iletileri işleyen bir Windows Hizmeti oluşturuyorum. Mesajın özelliklerine göre üretimde hizmet bölümleme esnekliği vermek istiyorum. Örneğin, bir örneğin Müşteri A'dan gelen web siparişlerini, Müşteri A'dan başka bir toplu siparişi, üçüncü bir web veya Müşteri B'den gelen toplu siparişleri işlediğini söyleyebilmelidir.Aldığım iletileri bir ileti sırasından (MSMQ) bazı özelliklerine göre filtreleyebilir miyim? (a.k.a. konu)

Geçerli çözümüm, her bir müşteri \ kaynak birleşimi için ayrı sıralar atamaktır. Emirleri sıraya koyan süreç doğru kararı vermelidir. Windows Hizmetim, iletileri bir veya daha fazla sıradan almak için yapılandırılabilir. Bu dağınık ama işe yarıyor.

cevap

5

Hayır, ancak sıraya PEEK girebilir ve iletiyi gerçekten kullanmak isteyip istemediğinize karar verebilirsiniz.

3

Kullanım GetMessageEnumerator2() böyle:

MessageEnumerator en = q.GetMessageEnumerator2(); 

while (en.MoveNext()) 
{ 
    if (en.Current.Label == label) 
    { 
     string body = ((XmlDocument)en.Current.Body).OuterXml; 
     en.RemoveCurrent(); 
     return body; 
    } 
} 
İlgili konular