webForumDet fria alternativet

Riktigt tunga funktioner i MVC

.NET

2 svar · 612 visningar · startad av Fubar

Medlem sedan feb. 200614 inlägg
Frågan#1

Hej

Jag har några få riktigt tunga funktioner, tar flera minuter att exekvera och detta vill jag anropa från ett MVC projekt.

Första tanken är att jag bara skriver en fil till en katalog som en windows service plockar upp, utför, och skickar tillbaka resultatet i samma fil.
Webb-projektet pollar filen med ajax och låta användaren se att något händer genom status eller liknande.

Men sedan slog det mig, hur bör man göra sånt här om man vill kunna skala upp det här, kanske skicka ut jobben till olika processer eller rent utav till olika maskiner. Skall man använda sig av någon form av meddelandeserver typ MSMQ?

Jag vill kunna starta jobb på ett enkelt sätt, och kunna skicka svar (status) från arbetsprocessen till användaren så man kan följa vad som händer.

Har ni några tips på böcker, tekniker, bloggar etc?

Edit: glömde säga, jag vill inte vara beroende av en databas annars kan jag tänka mig att det är den smidigaste lösningen.

Medlem sedan feb. 20041 816 inlägg
#2

Kolla på Comet. I kort innebär det att det hålls en öppen anslutning mot servern (eller en tunnel/proxy) som skickar events till webbläsaren, även efter det att sidan har laddats klart. Det är inget man skriver ihop på en kvart men det kanske finns färdiga komponenter att ta hem.

I Html5 kommer det nyheter som WebSockets och Server Side Sent Events men stödet bland webbläsarna är inte tillräckligt bra för att man ska våga sig på det än. Dessutom har jag läst att det inte finns stöd för SSE i IIS 7 8 utan att det kommer till nästa version. Nåja.

Medlem sedan feb. 200614 inlägg
#3

Tänkte undervika att låsa upp webservern med alla "beräkningar", de kan ta upp emot 10 minuter att exekvera.
Tänkte hitta ett bra sätt att göra detta för 5-25 samtidiga användare utan att de skall få dålig responstid i övriga (snabba) funktioner.

Men detta kanske IIS klarar av att lastbalansera själv om man konfigurerar lite? Jag är riktigt dålig på IIS ;)

248 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)