Προγραμματισμός

Πώς να εργαστείτε με το Hangfire στο C #

Ο προγραμματισμός εργασιών σε εφαρμογές Ιστού είναι μια πρόκληση και μπορείτε να επιλέξετε από πολλά πλαίσια για την εργασία. Μια δημοφιλής βιβλιοθήκη ανοιχτού κώδικα, το Hangfire είναι ένα πλαίσιο που μπορεί να χρησιμοποιηθεί για τον προγραμματισμό εργασιών παρασκηνίου στο .Net.

Γιατί να χρησιμοποιήσω το Hangfire;

Υπάρχουν πολλά πλαίσια προγραμματισμού θέσεων εργασίας σήμερα. Γιατί λοιπόν να χρησιμοποιείτε το Hangfire αντί, ας πούμε, το Quartz.Net, ποιο είναι ένα άλλο δημοφιλές πλαίσιο που χρησιμοποιείται εδώ και καιρό; Λοιπόν, ένα από τα σημαντικότερα μειονεκτήματα του Quartz.Net είναι ότι χρειάζεται υπηρεσία Windows. Αντίθετα, δεν χρειάζεστε υπηρεσία Windows για να χρησιμοποιήσετε το Hangfire στην εφαρμογή σας. Η δυνατότητα εκτέλεσης χωρίς υπηρεσία Windows καθιστά το Hangfire μια καλή επιλογή έναντι του Quartz.Net. Το Hangfire εκμεταλλεύεται τον αγωγό επεξεργασίας αιτημάτων του ASP.Net για επεξεργασία και εκτέλεση εργασιών.

Σημειώστε ότι το Hangfire δεν περιορίζεται σε εφαρμογές Web. μπορείτε επίσης να το χρησιμοποιήσετε στις εφαρμογές σας στην Κονσόλα. Η τεκμηρίωση για το Hangfire είναι πολύ λεπτομερής και καλά δομημένη και το καλύτερο χαρακτηριστικό είναι ο ενσωματωμένος πίνακας ελέγχου. Ο πίνακας ελέγχου Hangfire εμφανίζει λεπτομερείς πληροφορίες σχετικά με τις εργασίες, τις ουρές, την κατάσταση των εργασιών και ούτω καθεξής.

Ξεκινώντας

Για να δημιουργήσετε ένα νέο έργο στο Visual Studio που χρησιμοποιεί το Hangfire, ακολουθήστε τα εξής βήματα:

  1. Ανοίξτε το Visual Studio 2015
  2. Κάντε κλικ στο Αρχείο> Νέο> Έργο
  3. Επιλέξτε Visual C #> Web από τη λίστα των προτύπων έργου που εμφανίζονται
  4. Επιλέξτε την εφαρμογή ASP.Net Web από τη λίστα των προτύπων έργου Web
  5. Αποθηκεύστε το έργο με ένα όνομα

Το επόμενο βήμα είναι η εγκατάσταση και διαμόρφωση του Hangfire στην εφαρμογή σας. η διαδικασία είναι αρκετά απλή. Μπορείτε να εγκαταστήσετε το Hangfire μέσω του NuGet Package Manager στο Visual Studio. Εναλλακτικά, μπορείτε επίσης να χρησιμοποιήσετε την Κονσόλα διαχείρισης πακέτων για να εγκαταστήσετε τη βιβλιοθήκη Hangfire. Η προεπιλεγμένη εγκατάσταση του Hangfire χρησιμοποιεί τον SQL Server για την αποθήκευση πληροφοριών προγραμματισμού. Επιπλέον, μπορείτε να εγκαταστήσετε το Hangfire.Redis εάν χρησιμοποιείτε το Redis αντί για αποθήκευση.

Λάβετε υπόψη ότι το Hangfire αποθηκεύει τις εργασίες σας σε μόνιμο χώρο αποθήκευσης - πρέπει να διαμορφώσετε τον χώρο αποθήκευσης πριν ξεκινήσετε να χρησιμοποιείτε το Hangfire. Για να το κάνετε αυτό, δημιουργήστε μια βάση δεδομένων και καθορίστε τα διαπιστευτήρια της βάσης δεδομένων στη συμβολοσειρά σύνδεσης στο αρχείο διαμόρφωσης. Δεν χρειάζεται να δημιουργήσετε πίνακες στη βάση δεδομένων σας. Το Hangfire θα το κάνει αυτό για εσάς αυτόματα. Θα δούμε πώς και πότε θα γίνει αργότερα.

Τώρα που έχει δημιουργηθεί η βάση δεδομένων και οι πληροφορίες συμβολοσειράς σύνδεσης καθορίζονται στο αρχείο διαμόρφωσης της εφαρμογής, το επόμενο βήμα είναι η τροποποίηση του αρχείου Startup.cs και η παροχή των απαραίτητων πληροφοριών συμβολοσειράς σύνδεσης. Η ακόλουθη λίστα κωδικών απεικονίζει τον τρόπο με τον οποίο το αρχείο Startup.cs φαίνεται μετά τον καθορισμό των λεπτομερειών διαμόρφωσης.

χρησιμοποιώντας το Hangfire;

χρησιμοποιώντας τη Microsoft.Owin;

χρησιμοποιώντας το Owin;

χρησιμοποιώντας το Σύστημα;

[συνέλευση: OwinStartupAttribute (τύπου(HangFire.Startup))]

namespace HangFire

{

εκκίνηση δημόσιας μερικής τάξης

    {

διαμόρφωση δημόσιου κενού (εφαρμογή IAppBuilder)

        {

ConfigureAuth (εφαρμογή);

GlobalConfiguration.Configuration

.UseSqlServerStorage ("DefaultConnection");

BackgroundJob.Enqueue (() => Console.WriteLine ("Ξεκινώντας με το HangFire!"));

app.UseHangfireDashboard ();

app.UseHangfireServer ();

        }

    }

}

Είσαι έτοιμος. Όταν εκτελείτε την εφαρμογή και προσθέτετε τη διεύθυνση URL με "/ hangfire", μπορείτε να δείτε τον πίνακα ελέγχου Hangfire. Όταν το εκτελείτε την πρώτη φορά, δημιουργείται ένας νέος πίνακας στη βάση δεδομένων. Οι πίνακες που δημιουργούνται περιλαμβάνουν το AggregatedCounter, Counter, Hash, Job, JobParameter, JobQueue, List, Schema, Server, Set και State. Η δημιουργία φόντου φωτιάς και ξεχάστε στο Hangfire είναι αρκετά απλή. Μπορείτε να δημιουργήσετε μια εργασία στο παρασκήνιο χρησιμοποιώντας το Enqueue () μέθοδος του Ιστορικό Εργασία τάξη. Ακολουθεί ένα παράδειγμα:

BackgroundJob.Enqueue (() => Console.WriteLine ("Αυτή είναι μια δουλειά που πρέπει να εκτελείται στο παρασκήνιο."));

Μια καθυστερημένη εργασία παρασκηνίου είναι αυτή που περιμένει (για το διάστημα καθυστέρησης) και στη συνέχεια εκτελεί τον ίδιο τρόπο όπως μια κανονική εργασία παρασκηνίου και ξεχάστε. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να δημιουργήσετε μια καθυστερημένη εργασία φόντου χρησιμοποιώντας το Πρόγραμμα() μέθοδος του Ιστορικό Εργασία τάξη.

BackgroundJob.Schedule (() => Console.WriteLine ("Αυτή η εργασία φόντου θα εκτελεστεί μετά από καθυστέρηση."), TimeSpan.FromMilliseconds (1000));

Εάν επρόκειτο να εκτελέσετε εργασίες που θα εκτελούσαν μετά από ένα συγκεκριμένο χρονικό διάστημα, θα πρέπει να δημιουργήσετε επαναλαμβανόμενες εργασίες στο Hangfire. Για να δημιουργήσετε μια επαναλαμβανόμενη εργασία, θα πρέπει να αξιοποιήσετε το Επαναλαμβανόμενη εργασία τάξη. Λάβετε υπόψη ότι μπορείτε επίσης να καθορίσετε εκφράσεις "cron" κατά τον προγραμματισμό εργασιών στο Hangfire. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να δημιουργήσετε μια επαναλαμβανόμενη εργασία χρησιμοποιώντας τη βιβλιοθήκη Hangfire.

RecurringJob.AddOrUpdate (() => Console.WriteLine ("Αυτή η εργασία θα εκτελείται μία φορά κάθε λεπτό"), Cron.Minently);

Ρίξτε μια ματιά στο φροντιστήριο Hangfire Highlighter για περισσότερες πληροφορίες.