Tôi đang gặp sự cố khi thay đổi mức ưu tiên của thư được gửi tới MSMQ đã xác định. Bất cứ khi nào tôi đặt tin nhắn ưu tiên nó không bao giờ dường như ảnh hưởng đến ưu tiên của thông điệp trong hàng đợi Đây là một snipet về những gì tôi đang làm:Làm cách nào để thay đổi mức ưu tiên của thư trong MSMQ?
static public void QueueBatchItem(MessageQueue mq, MessageQueueTransaction msgTx, MessagePriority msgPriority)
{
using (System.Messaging.Message mm = new System.Messaging.Message())
{
string messageLabel = Guid.NewGuid().ToString();
System.Messaging.XmlMessageFormatter formatter = new XmlMessageFormatter();
RunSimulationRequestDTO dto = new RunSimulationRequestDTO();
dto.RetryCount = 0;
dto.BatchHeaderID = batchID;
dto.MSMQLabel = messageLabel;
mq.MessageReadPropertyFilter.Priority = true;
mm.Priority = msgPriority;
mm.Body = dto;
mm.Label = messageLabel;
mm.Formatter = formatter;
mq.Send(mm, msgTx);
}
}
Nếu tôi gỡ lỗi qua mã ưu tiên mặc định là 'Bình thường 'và khi một mục được gửi đến hàng đợi, mức độ ưu tiên hiển thị là 0 với' Thông báo xếp hàng '. Tôi có thể vượt qua các ưu tiên như MessagePriority.High hoặc bất kỳ trong 8 giá trị có thể và nó không bao giờ thay đổi ưu tiên là gì.
tôi thiếu gì trong này ... vài ví dụ mà tôi đã nhìn thấy có tất cả mọi thứ hiện có cơ bản như
Message mm = new Message();
mm.Priority = MessagePriority.High;
Tôi thậm chí đã cố gắng ứng dụng thử nghiệm chỉ ít bên ngoài của mã chính của tôi với các ví dụ MSDN và số ưu tiên không bao giờ thay đổi.
cảm ơn.
chỉnh sửa: tôi chắc chắn rằng các ưu tiên tôi đã nhìn thấy được không đến từ các chủ đề bằng cách thiết lập nó để AboveNormal
<ThreadManagersConfiguration DefaultSleepBetweenPolls="5000" DefaultMsmqServer=".">
<ThreadManagers>
<add DisplayName="BatchSimulationManager"
RequestMSMQ=".\Private$\BatchSimulationRequest"
ResponseMSMQ=""
FailedMSMQ=".\Private$\BatchSimulationFailure"
Priority="AboveNormal"
TransactionalMode="RollbackTransaction"
MaxThreads="16"
SleepTimeBetweenPolling="10000"
ProcessModel="BATCH"/>
</ThreadManagers>
</ThreadManagersConfiguration>
Đây có phải là hàng đợi riêng tư đối với đơn đăng ký của bạn không? – iandotkelly
Có, đó là hàng đợi riêng tư. –
Bạn chắc chắn đang xem xét mức độ ưu tiên của thư và không ưu tiên hàng đợi, có giá trị mặc định là 0 – iandotkelly