Kirjautuminen

Haku

Tehtävät

Kilpailu

Ohjelmoi tekoäly!
Aikaa on 6.1. saakka.

Keskustelu: Nettisivujen teko: Kuinka pitää prosessi käynnissä vaikka nettiselain on suljettuna

Sivu 1 / 1

Daimeri [09.11.2019 12:47:41]

Lainaa #

Asp.net core 2.2 razor pages

Ajattelin taas kysyä täältä ensimmäisenä, koska olen täältä saanut hyviä pointteja / vastauksia kun opettelen tätä asp.net hommaa.

Kyseessä olisi siis tilanne jossa kirjautunut käyttäjä laittaa palvelimen suorittamaan jotain asiaa ja haluaa sulkea nettiselaimen. Palvelimen olisi tarkoitus nettiselaimen sukkemisesta huolimatta jatkaa töitä.

Grez [09.11.2019 15:12:46]

Lainaa #

Käsitykseni mukaan palvelin suorittaa oletuksena palvelimelle lähetetyt pyynnöt loppuun vaikka nettiselain suljettaisiinkin. Koodiin voi toki itse kirjoittaa tarkistuksen "onko asiakas sulkenut yhteyden" ja keskeyttää suorituksen jos haluaa.

Toisaalta Asp.Net sivulatauksen on tarkoitus olla nopea ja tyypillisesti jos sivun suorittamisessa kestää kauan (minuutteja) niin kyseessä on yleensä bugi. Tätä varten siellä on oletusaikaraja (timeout), jonka jälkeen se tappaa sivunkäsittelyprosessin, olipa nettiselain kytkeytyneenä tai ei. Tuota aikarajaa voi toki kasvattaa, mutta tarkoituksenmukaista se ei yleensä ole. Eli tyypillisesti homma olisi järkevää tehdä niin, että Asp.Net Core käynnistää taustaprosessin ja palauttaa selaimelle saman tien sivun (esim. ilmoituksen siitä että prosessi on käynnistetty).

Erilaisia tyylejä tehdä taustaprosesseja on joka lähtöön, mutta tuossa on esitelty yksi tapa:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-2.2&tabs=visual-studio

Mango [09.11.2019 16:07:50]

Lainaa #

Hangfire on ollut ihan kätevä kaikenlaisten taustajobien hallintaan, ilmaisella core-versiolla onnistuu yleisimmät usecaset.

https://www.hangfire.io/

Daimeri [10.11.2019 15:26:14]

Lainaa #

Kiitos tiedoista. tarvitsee tutustua tuohon hangfire hommaan.

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta