Merhaba Bir web hizmeti ve bir çalışan rolü (şu anda) olan bir Bulut Hizmeti oluşturuyorum. İstenilen iş akışım şöyle olurdu: tarayıcı, web rolünde bir webApi denetleyicisini çağırır; bu, daha sonra iş rolü tarafından işlenen bir sıraya (veya hizmet veri yoluna) ileti gönderir. Çok uzak çok iyi. İşçi rolü mesajın işlenmesini tamamladığında, web rolünde bir yöntem aramak istiyorum, bu işlem tarayıcıyı tamamladığını (daha sonra SignalR ile) bildirecektir. Soruyu sormak için doğru yer değilse lütfen bana izin verin, çünkü bu daha çok “en iyi uygulama” sorusu gibi, gerçek bir sorun gibi.İşçi Rolü ve Web Rolü arasındaki Azure iletişimi
işçi rolü (tablo depolama) bir tablo satırını günceller ilerleme ve görevin tamamlanması ile: Şimdiye kadar 2 yaklaşımları kabul var. Web rolüne işaret yok. Tarayıcı, tablo depolarını doğrudan (REST api üzerinden) okur ve bu nedenle görevin ne zaman tamamlandığını bilir. Bu, sürekli oylama yaklaşımını beğenmemek ve “olay-temelli” bir çözüme sahip olmak isterim. Ayrıca, müşteri işlemin bittiği bilgisini aldıktan sonra, işlemin tamamlandığını diğer istemcilere (SignalR üzerinden) yayınlamak için bir web api yöntemine ek bir çağrı yapmalıdır.
(aşağıdaki kod örneğini bakınız) da çalışır (zaten de test) SignalR ile birlikte Interrole communication kullanma
kod örneği:
var protocol = "http";
var ipAddress = RoleEnvironment.Roles["XXX.YYY.Web"]
.Instances[0]
.InstanceEndpoints.ToArray()
.Where(ep => ep.Value.Protocol == protocol)
.First()
.Value.IPEndpoint.ToString();
var stringEndpoint = string.Format("{0}://{1}", protocol, ipAddress.ToString());
Trace.WriteLine("Retrieved endpoint address: " + stringEndpoint, "Information");
HubConnection connection = new HubConnection(stringEndpoint);
IHubProxy proxy = connection.CreateHubProxy("MyWebHub");
connection.Start().Wait();
//later...
proxy.Invoke("ProgressUpdated", clientId, progress);
Sorum şu: (orada daha iyi diğer vardır) Yönlendirme yolları nasıl Çalışıyor? -> Web rolü? Yani, bir işçi rolünün işlenmesini tamamladığında web rolünde bir yöntem tetiklenir mi? Web rolündeki yöntem daha sonra güncellemeyi tüm istemcilere SignalR üzerinden yayınlayacaktır. Aynı zamanda Event Hubs'a da baktım ama benim için, Tüketici Tüketici rolünü üstlenmeye devam edecek.
Bu uygulamayı seviyorum! Bu deseni daha önce hiç düşünmemiştim ve oldukça kaygan. İyi iş! – Rogala