WCF ve MSMQ kullanarak bir kavram kanıtı üzerinde çalışıyorum. Varsayılan olarak This Article varsayılanlarını kullanarak gaz ayarlarıyla oynuyorum ve ayrıca kendi ayarlarınızı yapılandırma dosyasına ekliyorum. Bu uygulamayı çalıştıran 2 adet Quad Core Xeon işlemciye sahibim. Hangi ayarları uygulamam olursa olsun, her seferinde yalnızca bir seferde 8 mesaj aldım (İşlem çekirdeklerimle eşleşen). İletilerin her birinin tek bir işlemde ele alınmasını istiyorum, böylece sorunun bir parçası olabilir ... emin değilim. Sanırım çok daha fazla mesajı eşzamanlı olarak ele alacağını düşündüm.WCF Gaz Kelebeği Ayarları
Servis Davranışı:
[ServiceBehavior(UseSynchronizationContext = true,
ReleaseServiceInstanceOnTransactionComplete=true,
ConcurrencyMode = ConcurrencyMode.Single,
InstanceContextMode = InstanceContextMode.PerCall)]
Son nokta Davranış:
<endpointBehaviors>
<behavior name="endpointBehavior">
<transactedBatching maxBatchSize="1" />
</behavior>
</endpointBehaviors>
Kendi Hizmet Throttling:
<serviceThrottling maxConcurrentCalls="128" maxConcurrentSessions="800" />
şey bakan muyum? Belki de sadece varsayılan/özel gaz ayarını tam olarak anlamıyorum (muhtemelen).
Ben ReleaseServiceInstanceOnTransactionComplete ayarının yanı sıra (Çoklu değiştirildi) ConcurrencyMode değiştirdiniz
DÜZENLEME. Çoklu'ye geçmek bir şeyi değiştirmedi mi?
EDIT Belki TransactionBatch ayarı mı? Bunu bir tane ayarladım ...
sayesinde
S
Bu tek iş parçacıklı değil mi? –
Merhaba @JohnBreakwell Eşzamanlılık modunu Çoklu olarak değiştirdim ve aynı sonuçları gerçekleştiriyor gibi görünüyor muyum? – scarpacci