Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 61378|Risposta: 6

[ASP.NET] asp.net tutorial sul framework hangfire per compiti di background

[Copiato link]
Pubblicato su 24/05/2019 09:51:10 | | | |
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:

c# racchiude una coda universale QueueHelper
https://www.itsvse.com/thread-5029-1-1.html
(Fonte: Architect_Programmer)


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)






Precedente:L'algoritmo dei dati video condivide note
Prossimo:Richiesta abortita: Non riuscito a creare una soluzione di canale sicuro SSL/TLS
Pubblicato su 24/05/2019 10:12:25 |
Questo post è stato modificato l'ultima volta da YuAn il 24-05-2019 alle 22:20

Bel articolo imparato
Pubblicato su 24/05/2019 10:12:46 |
Supporto
Pubblicato su 17/09/2021 21:59:44 |

Supporto
Pubblicato su 26/09/2022 22:20:45 |
Supporto, impara a usarlo
Pubblicato su 12/11/2022 19:02:23 |

Supporto, impara a usarlo
Pubblicato su 25/03/2023 09:45:31 |

Supporto, impara a usarlo
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com