527 messaggi dal 18 dicembre 2012
Ciao a tutti
Qualcuno ha usato hangfire?
Sono alla ricerca o di un esempio pratico, non quelli presenti nella guida perchè ci ho capito poco, o di un tutorial.
Devo realizzare delle funzioni che o si avviano e girano sul server o che si avviano con il portale, non quando un utente accede al portale, e che ogni tot minuti mi eseguono delle operazioni.
Operazioni del tipo: controllare se ci sono dei contratti in scadenza.

Nella guida online ci sono esempi, ma non mi è chiaro dove inserire il codice. Non ho capito se devo creare un nuovo progetto o inserire il codice nel progetto del portale.
Grazie mille
527 messaggi dal 18 dicembre 2012
Ciao Moreno
grazie per il link. Non avevo ancora letto l'articolo.
Quello che non capisco è:
- che tipo di progetto devo realizzare? (MVC lo conosco pochissimo. Ho solo fatto delle modifiche su nopCommerce)
- come faccio a lanciarlo sul server? Lo devo configurare su iis?
Grazie
Modificato da Svipla il 07 marzo 2016 15.31 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
indipentemente dal tipo di progetto (ASP.NET WebForms o ASP.NET MVC) devi aggiungere una classe Startup al tuo progetto. Fallo con tasto destro sul tuo progetto -> Add -> New File -> Owin Startup Class (potresti non avere questa voce in un progetto vb). In caso prendi il codice da qui:
http://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection

Dopodiché, affinché il suo metodo Configuration venga mandato in esecuzione, installa questo pacchetto nel tuo progetto. Dalla console di gestione pacchetti digita:
Install-Package Microsoft.Owin.Host.SystemWeb


A questo punto sei pronto per utilizzare il codice di Marco: nel metodo Configuration metti quello che vedevi nel suo script, eventualmente personalizzando la connection string.
GlobalConfiguration.Configuration
    .UseSqlServerStorage("DefaultConnection");

app.UseHangfireDashboard();
app.UseHangfireServer();


IIS è un application server, tra le altre cose vuol dire che il job di Hangfire andrà in esecuzione al di fuori di una richiesta web, proprio come hai configurato dalla classe Startup. Quindi hangfire continua a "vivere" anche se non stanno arrivando richieste.
E qui devi fare attenzione, perché IIS scaricherà dalla memoria l'applicazione se per un tempo prolungato non ne arriva nessuna. Questo è il cavillo di tenere dei job attivi in un'applicazione ASP.NET. Sappi però che puoi tenere l'applicazione sempre attiva con l'impostazione Always running (devi avere accesso al server).
Lo trovi spiegato in maniera esastiva nella documentazione di HangFire.
http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html

ciao,
Moreno
Modificato da BrightSoul il 08 marzo 2016 08.07 -

Enjoy learning and just keep making

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.