Το Hangfire λειτουργεί με τις περισσότερες πλατφόρμες .NET:.NET Framework 4.5 ή νεότερη έκδοση, .NET Core 1.0 ή νεότερη έκδοση, οτιδήποτε σχετίζεται με . Πλατφόρμα συμβατή με NET Standard 1.3. Μπορείτε να το ενσωματώσετε με σχεδόν οποιοδήποτε πλαίσιο εφαρμογών, συμπεριλαμβανομένων των ASP.NET, ASP.NET Core, εφαρμογών κονσόλας, υπηρεσιών Windows, WCF και προγραμμάτων οδήγησης κοινότητας όπως το Nancy ή το ServiceStack.
Ισχύοντα σενάρια:Το φόντο στέλνει το email ασύγχρονα και επιστρέφει μια απάντηση στον χρήστη το συντομότερο δυνατό. Προγραμματισμένη εκτέλεση εργασιών, κυκλική εκτέλεση εργασιών, ασύγχρονη εκτέλεση χρονοβόρων εργασιών, ολοκλήρωση εκτέλεσης εργασίας Α και στη συνέχεια εκτέλεση εργασιών Β και μαζική εκτέλεση εργασιών. Πώς το έκανα:
Μπορείτε να βάλετε επεξεργασία παρασκηνίου σε ASP.NET εφαρμογή χωρίς να χρησιμοποιήσετε άλλες διαδικασίες όπως οι υπηρεσίες των Windows. Ο κώδικας του Hangfire είναι έτοιμος για ανάπτυξηΑπροσδόκητος τερματισμός διεργασίας, ανακύκλωση χώρου συγκέντρωσης εφαρμογών και επανεκκίνηση。 Λόγω της χρήσηςΜόνιμη αποθήκευση, εξ ου και εσύΔεν χάνονται θέσεις εργασίας στο παρασκήνιο。
Πρώτον, οι αποδόσεις είναι οι εξής:
Η παραπάνω εικόνα είναι ο πίνακας εργαλείων του Hangfire Dashboard, ο οποίος είναι πολύ χρήσιμος και μπορεί να ελέγξει την κατάσταση των εργασιών στο παρασκήνιο και είναι επίσης πολύ ωραίος, επομένως πρέπει να ρυθμιστεί.
Το περιβάλλον εργασίας χρήστη του πίνακα εργαλείων απαιτεί μια κλάση εκκίνησης, μόνο εάνΚατά τη διαμόρφωση του Hangfire με την κλάση Startup,Διεπαφή χρήστη πίνακα ελέγχουΜπορεί να χρησιμοποιηθεί。
Στην αρχή, δεν διαμόρφωσα τον πίνακα ελέγχου του Hangfire Dashboard και έλαβα το ακόλουθο σφάλμα:
Παρουσιάστηκαν τα ακόλουθα σφάλματα κατά την προσπάθεια φόρτωσης της εφαρμογής. - Δεν βρέθηκε συγκρότημα που να περιέχει ένα OwinStartupAttribute. - Δεν βρέθηκε συγκρότηση που να περιέχει εκκίνηση ή [AssemblyName]. Κατηγορία εκκίνησης. Για να απενεργοποιήσετε τον εντοπισμό εκκίνησης OWIN, προσθέστε το appSetting owin:AutomaticAppStartup με τιμή "false" στο web.config. Για να καθορίσετε τη συγκρότηση, την κλάση ή τη μέθοδο εκκίνησης OWIN, προσθέστε το appSetting owin:AppStartup με την πλήρως προσδιορισμένη κλάση εκκίνησης ή το όνομα της μεθόδου διαμόρφωσης στο web.config.
Λύση:
Όταν χρησιμοποιείτε προετοιμασία βάσει Global.asax.cs, μπορεί επίσης να χρειαστεί να απενεργοποιήσετε τον εντοπισμό κλάσης εκκίνησης του OWIN.
Αρχίζουμε να φτάνουμε στο σημείο, το σεμινάριο ξεκινά:
1: Το πλαίσιο πρέπει να ανταποκρίνεται στις ανάγκες της πυρκαγιάς,Το έργο μου είναι .NET 4.6.2, Έτσι, μπορείτε να εγκαταστήσετε το hangfire κανονικά, τα έργα .net 4.0 δεν χρειάζεται να προσπαθήσουν, δεν υποστηρίζονται!
2: Η εντολή nuget είναι η εξής:
3: Η κλάση OWIN Startup έχει σχεδιαστεί για να διατηρεί τη λογική εκκίνησης της εφαρμογής Ιστού σε ένα μέρος. Στο Visual Studio 2013, μπορείτε να το προσθέσετε κάνοντας δεξί κλικ στο έργο και επιλέγοντας το στοιχείο μενού Add/OWIN Startup Class. Οπως φαίνεται παρακάτω:
Δημιουργήστε ένα νέο αρχείο Startup.cs στον ριζικό κατάλογο του έργου.
4: Διαμόρφωσησυμβολοσειρά σύνδεσης βάσης δεδομένων, την έκδοση του SQL Server 2012 που χρησιμοποιώ εδώ, η διαμόρφωση στο web.config έχει ως εξής:
5: Διαμορφώστε τον πίνακα ελέγχου Hangfire για πρόσβαση στο φίλτρο, δημιουργήστε ένα νέοHangfireAuthorizationFilter.csΑρχείο.
Από προεπιλογή, επιτρέπεται μόνο η τοπική πρόσβαση στον πίνακα ελέγχου Hangfire. Η εξουσιοδότηση του πίνακα εργαλείων πρέπει να ρυθμιστεί ώστε να επιτρέπει την απομακρυσμένη πρόσβαση.
6: Διαμορφώστε την κλάση Startup.cs, ο κωδικός είναι ο εξής:
7: Ξεκινήστε ένα έργο ιστότοπου
Εκτελέστε την εφαρμογή F5 πατώντας τη λειτουργία εντοπισμού σφαλμάτων (αυτό απαιτεί την εξέταση της εξόδου της μεθόδου Debug.WriteLine). Στη συνέχεια, ελέγξτε το ακόλουθο μήνυμα στο παράθυρο Έξοδος για να δείτε εάν η επεξεργασία στο παρασκήνιο ξεκίνησε με επιτυχία.
Ταυτόχρονα, η βάση δεδομένων διαθέτει επίσης 11 ακόμη πίνακες για να διασφαλίσει ότι όλες οι εργασίες μπορούν να εκτελεστούν κανονικά και ότι οι εργασίες δεν θα χαθούν κατά την ανάκτηση IIS ή την επανεκκίνηση της διαδικασίας, όπως φαίνεται στο παρακάτω σχήμα:
http://<your-web-app>/hangfire Επισκεφτείτε τη διεύθυνση URL του περιβάλλοντος εργασίας του πίνακα εργαλείων για να δείτε την απόδοση στο επάνω μέρος του άρθρου.
Συνημμένη χρήση
Fire-And-forget (δημοσίευση/εγγραφή)
Αυτός είναι ο κύριος τύπος εργασίας παρασκηνίου που χειρίζεται η μόνιμη ουρά μηνυμάτων. Όταν δημιουργείτε μια εργασία δημοσίευσης/εγγραφής, η εργασία θα αποθηκευτεί στην προεπιλεγμένη ουρά (η προεπιλεγμένη ουρά είναι "Προεπιλογή", αλλά υποστηρίζονται πολλές ουρές). Πολλοί αφοσιωμένοι εργαζόμενοι ακούν αυτήν την ουρά και ανακτούν εργασίες από αυτήν και ολοκληρώνουν εργασίες.
Καθυστέρηση
Εάν θέλετε να καθυστερήσετε την εκτέλεση ορισμένων εργασιών, μπορείτε να χρησιμοποιήσετε τις ακόλουθες εργασίες. Μετά από ένα δεδομένο χρόνο καθυστέρησης, η εργασία τοποθετείται στην ουρά και εκτελείται όπως μια εργασία δημοσίευσης/εγγραφής.
Βρόχος
Για να καλέσετε τη μέθοδο κατά περιοδικότητα (ώρες, ημέρες κ.λπ.), χρησιμοποιήστε την κλάση RecurringJob. Σε σύνθετα σενάρια, μπορείτε να χρησιμοποιήσετε εκφράσεις CRON για να καθορίσετε μια προγραμματισμένη ώρα για την επεξεργασία εργασιών.
Συνεχής
Το Continuity σάς επιτρέπει να ορίζετε σύνθετες ροές εργασίας συνδέοντας πολλές εργασίες στο παρασκήνιο μεταξύ τους.
Επίσημος σύνδεσμος τεκμηρίωσης:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
(Τέλος)
|