3.826 messaggi dal 28 gennaio 2003
Ciao.
Da un sito web vorrei lanciare una procedura con lo scopo di aggiornare una variabile globale, a intervalli regolari, in modo indipendente dalle pagine richiamate.
Non so se si possa fare, comunque mi ci sto perdendo: qualche suggerimento?

ciao.

Pietro
10.904 messaggi dal 09 febbraio 2002
Contributi
Ciao pietro,
puoi usare Hangfire, che ha una dashboard che ti permetterà di monitore l'esecuzione (e gli eventuali errori)della procedura. Qui c'è uno script di Marco De Sanctis.
http://www.aspitalia.com/script/1190/Utilizzare-Hangfire-Schedulare-Job-ASP.NET-MVC.aspx

Ricordati di impostare il sito IIS come Always Running, altrimenti la procedura smetterà di funzionare quando IIS arresta l'applicazione per inattività. Qui c'è scritto come fare (serve Windows Server 2008 R2 o superiore).
http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html

ciao,
Moreno

Enjoy learning and just keep making
3.826 messaggi dal 28 gennaio 2003
Ciao. Ti ringrazio. Studierò la tua proposta, nel frattempo spiego meglio quello che mi serverebbe.
In http://miosito/mia_pagina.aspx vorrei inserire un dato da una pagina esterna.
Però, la lettura di questo dato impiega qualche secondo. Dato che è un dato quasi statico (varia ogni mezz'ora), penso che sia inutile appesantire la mia pagina.
Basterebbe un qualcosa che, a intervalli per esempio di 10 minuti, mettesse quel dato in una variabile globale, in modo che la mia pagina la legga istantaneamente.

Sono consapevole di essere poco chiaro, ma confido che esista una soluzione o più soluzioni per questo problema.

Ciao.

Pietro
10.904 messaggi dal 09 febbraio 2002
Contributi
No no, ti sei spiegato benissimo. Io lo farei appunto con hangfire. Oppure, se non vuoi introdurre questa complessità nella tua applicazione, potresti cacharlo e impostare una absolute expiration di mezz'ora nel futuro. Quando un utente si collega per la prima volta, non esisterà alcun dato in cache e perciò dovrà attendere qualche secondo che il valore venga recuperato e cachato. Dalla seconda richiesta in poi, il valore arriverà dalla cache e perciò il caricamento di pagina sarà molto veloce.
Dopo mezz'ora, uno degli utenti dovrà di nuovo aspettare qualche secondo affinché il valore sia di nuovo recuperato a cachato. Ecco un link sull'uso della cache.
https://www.codeproject.com/articles/290935/using-memorycache-in-net-4-0

Se invece vuoi evitare l'attesa, allora guarda HangFire. Attenzione perché la sostituzione del valore devi farla in maniera thread safe, altrimenti c'è rischio che qualche pagina legga il valore proprio mentre viene aggiornato dalla procedura che gira in background.

ciao,
Moreno
Modificato da BrightSoul il 24 febbraio 2018 17.43 -

Enjoy learning and just keep making
3.826 messaggi dal 28 gennaio 2003
Ti ringrazio. Ci provo. Ciao.

Pietro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.