Hangfire funziona con la maggior parte delle piattaforme .NET:.NET Framework 4.5 o successive.NET Core 1.0 o successiva, qualsiasi cosa relativa a . Piattaforma compatibile con NET Standard 1.3. Puoi integrarlo con quasi qualsiasi framework applicativo, inclusi ASP.NET, ASP.NET Core, applicazioni console, servizi Windows, WCF e driver comunitari come Nancy o ServiceStack.
Scenari applicabili:Il background invia l'email in modo asincrono e restituisce una risposta all'utente il prima possibile. Esecuzione programmata dei compiti, esecuzione ciclica dei compiti, esecuzione asincrona di compiti che richiedono tempo, completamento dell'esecuzione del compito A e poi esecuzione dei compiti B, ed esecuzione batch dei compiti. Come facevo prima:
Puoi inserire l'elaborazione in background ASP.NET'applicazione senza usare altri processi come i servizi Windows. Il codice di Hangfire è pronto per la distribuzioneTerminazione imprevista del processo, riciclo del pool di applicazioni e riavvio。 A causa dell'usoMemoria persistente, da qui tuNon si perdono lavori di background。
Innanzitutto, le rappresentazioni sono le seguenti:
L'immagine sopra è la dashboard di Hangfire Dashboard, molto utile e può controllare lo stato delle attività in background, ed è anche molto interessante, quindi deve essere configurata.
L'interfaccia del dashboard richiede una classe di avvio, solo se tuQuando si configura Hangfire con la classe Startup,Interfaccia del CruscottoPuò essere utilizzato。
All'inizio non ho configurato la dashboard di Hangfire e ho ricevuto il seguente errore:
I seguenti errori si sono verificati durante il tentativo di caricare l'app. - Nessun assembly trovato contenente un OwinStartupAttribute. - Nessun assembly trovato contenente un Avvio o [AssemblyName]. Corso per startup. Per disabilitare la scoperta di avvio OWIN, aggiungi appSetting owin:AutomaticAppStartup con il valore "false" nel tuo web.config. Per specificare l'Assembly, la Classe o il Metodo di avvio OWIN, aggiungi appSetting owin:AppStartup con la classe di avvio completamente qualificata o il nome del metodo di configurazione nel tuo web.config.
Soluzione:
Quando si utilizza l'inizializzazione basata su Global.asax.cs, potresti anche dover disabilitare il rilevamento delle classi di avvio di OWIN.
Arriviamo al punto, il tutorial inizia:
1: Il quadro dovrebbe soddisfare le esigenze del hangfire,Il mio progetto è .net 4.6.2, Quindi, puoi installare Hangfire normalmente, i progetti .net 4.0 non devono provarci, non sono supportati!
2: Il comando nuget è il seguente:
3: La classe OWIN Startup è progettata per mantenere la logica di avvio dell'applicazione web in un unico posto. In Visual Studio 2013, puoi aggiungerlo cliccando con il tasto destro sul progetto e selezionando l'elemento del menu Add/OWIN Startup Class. Come mostrato di seguito:
Crea un nuovo file Startup.cs nella directory root del progetto.
4: ConfigurazioneStringa di connessione database, la versione SQL Server 2012 che sto usando qui, la configurazione in web.config è la seguente:
5: Configura la Dashboard di Hangfire per accedere al filtro, crearne uno nuovoHangfireAuthorizationFilter.csFile.
Per impostazione predefinita, è consentito solo l'accesso locale al Dashboard di Hangfire. L'autorizzazione del cruscotto deve essere configurata per consentire l'accesso remoto.
6: Configura la classe Startup.cs, il codice è il seguente:
7: Avviare un progetto web
Esegui l'applicazione F5 premendo modalità debug (questo richiede di guardare l'output del metodo Debug.WriteLine). Poi controlla il seguente messaggio nella finestra di Output per verificare se l'elaborazione in background è iniziata con successo.
Contemporaneamente, il database dispone anche di 11 tabelle aggiuntive per garantire che tutte le attività possano essere eseguite normalmente e che le attività non vengano perse durante la ripresa IIS o il riavvio del processo, come mostrato nella figura sottostante:
http://<your-web-app>/fuoco a colpo Visita l'URL dell'interfaccia utente della dashboard per vedere il rendering in cima all'articolo.
Utilizzo allegato
Fire-and-forget (pubblica/abbonati)
Questo è il tipo principale di compito in background che gestisce la coda di messaggi persistenti. Quando crei un compito di pubblicazione/abbonamento, il compito verrà salvato nella coda predefinita (la coda predefinita è "Default", ma sono supportate più code). Più lavoratori dedicati ascoltano questa coda, recuperano le attività da essa e completano i compiti.
Ritardo
Se vuoi ritardare l'esecuzione di determinati compiti, puoi utilizzare i seguenti compiti. Dopo un determinato tempo di ritardo, il compito viene messo in coda ed eseguito come un compito di pubblicazione/iscrizione.
Loop
Per chiamare il metodo per periodicità (ore, giorni, ecc.), usa la classe RecurringJob. In scenari complessi, puoi usare espressioni CRON per specificare un tempo programmato per elaborare i compiti.
Continuo
La continuità ti permette di definire flussi di lavoro complessi collegando insieme più task in background.
Link ufficiale alla documentazione:Il login del link ipertestuale è visibile.
(Fine)
|