Mam stronę internetową asp.net (mvc). Jako część funkcji będę musiał obsługiwać długo działające operacje, na przykład:Długie operacje (wątki) w środowisku sieciowym (asp.net)
Zainicjowany przez użytkownika: Użytkownik może przesłać (xml) plik na serwer. Na serwerze muszę wyodrębnić plik, wykonać trochę manipulacji (wstawić do bazy danych) itd. Może to potrwać od jednej minuty do dziesięciu minut (lub nawet więcej - w zależności od rozmiaru pliku). Oczywiście nie chcę blokować żądania, gdy import jest uruchomiony, ale chcę przekierować użytkownika na stronę postępu, na której będzie mógł zobaczyć status, błędy, a nawet anulować import.
Ta operacja nie będzie często używana, ale może się zdarzyć, że dwóch użytkowników jednocześnie spróbuje zaimportować dane. Byłoby miło równolegle zarządzać importem. Na początku zastanawiałem się nad stworzeniem nowego wątku w iis (działanie kontrolera) i uruchomiłem import w nowym wątku. Ale nie jestem pewien, czy to dobry pomysł (aby stworzyć działające wątki na serwerze WWW). Czy powinienem używać usług Windows lub innego podejścia?
Zainicjowany z systemu: - Będę musiał okresowo aktualizować wskaźnik lucenu o nowe dane. - Będę musiał wysłać masowe wiadomości e-mail (w przyszłości).
Czy powinienem wdrożyć to jako zadanie na stronie i uruchomić zlecenie za pośrednictwem Quartz.net, czy też powinienem utworzyć usługę Windows czy coś?
Jakie są najlepsze praktyki, jeśli chodzi o uruchamianie witryny "oferty pracy"?
Dzięki!
Rozważ niektóre z odpowiedzi na powiązane pytanie http://stackoverflow.com/a/41734936/56145 –