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ä.
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
Hangfire on ollut ihan kätevä kaikenlaisten taustajobien hallintaan, ilmaisella core-versiolla onnistuu yleisimmät usecaset.
Kiitos tiedoista. tarvitsee tutustua tuohon hangfire hommaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.