.NET-HILFE

Quartz .NET (Wie es für Entwickler funktioniert)

Veröffentlicht 1. Juli 2024
Teilen Sie:

Einführung in Quartz.NET

Für .NET-Anwendungen ist Quartz.NET ein sehr beliebtes Open-Source-Toolkit für die Aufgabenplanung. Es bietet Programmierern eine solide Grundlage für die Planung und Ausführung von Aufträgen, Zeitplänen oder Prozessen in bestimmten Zeiträumen, Intervallen oder als Reaktion auf Auslöser. Quartz.NET erleichtert die Erstellung komplizierter Planungsszenarien in .NET-Anwendungen, sei es für die Zustellung von Benachrichtigungen, die Planung von Aufträgen, die Erstellung von Berichten oder die Durchführung regelmäßiger Wartungsaktivitäten. Quartz.NET eignet sich perfekt als Job Scheduling System für die Erstellung kleiner Anwendungen bis hin zu großen Unternehmenssystemen.

Die neueste Version des Quartz.NET Schedulers bietet eine nahtlose Integration mit verschiedenen unterstützten Datenbankanbietern und ermöglicht es Entwicklern, die Funktionalität des Schedulers mit einer komfortablen Erweiterungsmethode zu erweitern und gleichzeitig die zuverlässige Ausführung von Aufgaben als gehosteten Dienst sicherzustellen.

Die Integration von Quartz.NET mit IronPDF ermöglicht den Aufbau zuverlässiger Planungssysteme mit starken PDF-Produktionsfunktionen in .NET-Anwendungen. Obwohl IronPDF eine ganze Reihe von Werkzeugen zum Erstellen, Ändern und Anzeigen von PDF-Dokumenten bietet, stellt Quartz.NET ein vielseitiges und zuverlässiges Planungssystem dar. In Kombination bieten sie Entwicklern die Möglichkeit, PDF-Erstellungsvorgänge als Teil von Workflows zu automatisieren oder Hintergrundaufträge zu planen, was den Nutzen und die Funktionalität ihrer Anwendungen verbessert.

Wesentliche Merkmale

Flexible Terminplanung

Quartz.NET ermöglicht es Programmierern, Zeitpläne zu erstellen, die Programme in bestimmten Intervallen oder zu bestimmten Zeiten ausführen lassen (z. B. stündlich, täglich, alle 30 Minuten). Es ist kompatibel mit komplexen Planungsmustern, wie z. B. Cron-Ausdrücken, die eine genaue Kontrolle über die Zeiten bieten, zu denen Code, Aufträge und Dienste ausgeführt werden.

Auslöserbasierte Ausführung

In Quartz.NET können Aufträge durch eine Vielzahl von Auslösern gestartet werden. Dazu gehören kalenderbasierte Auslöser (die z. B. Wochenenden ausschließen), einfache Auslöser (die nach einem festen Zeitplan arbeiten), Auftragsauslöser und maßgeschneiderte Auslöser, die von äußeren Umständen oder Ereignissen abhängig sind.

Beharrlichkeit im Beruf

Quartz.NET verfügt über die Fähigkeit, Aufträge dauerhaft zu planen und ermöglicht die Speicherung geplanter Aufgaben und ihrer abgeschlossenen Historie in einer Datenbank. Die Ausfallsicherheit des Auftragsplans bei Anwendungsfehlern oder Neustarts ist gewährleistet, und das Clustering von Aufträgen ermöglicht eine hohe Verfügbarkeit und Skalierbarkeit.

Gleichzeitigkeitskontrolle

Um zu gewährleisten, dass die Aufgaben sicher und effektiv erledigt werden, verfügt Quartz.NET über integrierte Gleichzeitigkeitskontrollwerkzeuge. Um die Gleichzeitigkeit der Auftragsausführung zu steuern, können Entwickler Thread-Pools, Auftragsprioritäten und Ausführungsbeschränkungen einrichten.

Auftragsketten und Abhängigkeitsmanagement

Dank der Unterstützung von Quartz.NET für die Verkettung von Aufträgen und die Verwaltung von Abhängigkeiten können Aufträge in einer bestimmten Reihenfolge ausgeführt und Beziehungen zwischen ihnen von Entwicklern definiert werden. Dies ermöglicht die Erstellung komplexer Orchestrierungssituationen für Hintergrundaufträge, Dienste und Verfahren.

Fehlerbehandlung und Wiederholungstechniken

Quartz.NET verfügt über Fehlerbehandlungs- und Wiederholungstechniken, um Fehler elegant zu verwalten. Bei vorübergehenden Fehlern oder Ausnahmen können die Entwickler Wiederholungsrichtlinien und Fehlerbehandlungstechniken einrichten, um zu gewährleisten, dass die Aufträge erneut ausgeführt oder neu geplant werden.

Clustering & Skalierbarkeit

Mehrere Instanzen des Schedulers können dank der Cluster-Unterstützung von Quartz.NET beim verteilten Job Scheduling Aufgaben über einen Server-Cluster hinweg koordinieren und ausführen. Dies garantiert einen zuverlässigen Job Scheduler und eine zuverlässige Ausführung in einem verteilten Kontext, indem es horizontale Skalierbarkeit und Fehlertoleranz ermöglicht.

Integration in das .NET-Ökosystem

Quartz.NET lässt sich problemlos in das .NET-Ökosystem einbinden, das auch Messaging-Systeme umfasst (Rebus.NET, MassTransit), Logging-Frameworks (Serilog, NLog)und beliebte Frameworks für die Injektion von Abhängigkeiten (Autofac, Microsoft.Extensions.DependencyInjection).

Erstellen und Konfigurieren von Quartz.NET

Jobs und Auslöser definieren

Legen Sie für die Aufgaben, die Sie ausführen möchten, Aufträge und Auslöser fest. Die zu erledigende Aufgabe wird durch ein Kontextobjekt und eine Auftragsklasse dargestellt, und die Häufigkeit und der Zeitpunkt der Auftragsausführung werden durch einen Auslöser bestimmt.

public class MyJob : IJob
{
    public async Task Execute(IJobExecutionContext context)
    {
        // Implement the logic for your job here
    }
}

var job = JobBuilder.Create<MyJob>()
    .WithIdentity("myJob", "group1")
    .Build();

var trigger = TriggerBuilder.Create()
    .WithIdentity("myTrigger", "group1")
    .WithCronSchedule("0 0/5 * * * ?") // Run every 5 minutes
    .Build();
public class MyJob : IJob
{
    public async Task Execute(IJobExecutionContext context)
    {
        // Implement the logic for your job here
    }
}

var job = JobBuilder.Create<MyJob>()
    .WithIdentity("myJob", "group1")
    .Build();

var trigger = TriggerBuilder.Create()
    .WithIdentity("myTrigger", "group1")
    .WithCronSchedule("0 0/5 * * * ?") // Run every 5 minutes
    .Build();
Public Class MyJob
	Implements IJob

	Public Async Function Execute(ByVal context As IJobExecutionContext) As Task
		' Implement the logic for your job here
	End Function
End Class

Private job = JobBuilder.Create(Of MyJob)().WithIdentity("myJob", "group1").Build()

Private trigger = TriggerBuilder.Create().WithIdentity("myTrigger", "group1").WithCronSchedule("0 0/5 * * * ?").Build()
VB   C#

Konfigurieren und Initialisieren des Schedulers

Nachdem Sie den Job Scheduler mit der angegebenen Konfiguration für die Planung von Hintergrundaufgaben, Jobs und Triggern eingerichtet haben, starten Sie den Scheduler, um mit der Planung und Ausführung von Jobs zu beginnen.

var schedulerFactory = new StdSchedulerFactory();
var scheduler = await schedulerFactory.GetScheduler();
await scheduler.Start();
await scheduler.ScheduleJob(job, trigger);
var schedulerFactory = new StdSchedulerFactory();
var scheduler = await schedulerFactory.GetScheduler();
await scheduler.Start();
await scheduler.ScheduleJob(job, trigger);
Dim schedulerFactory = New StdSchedulerFactory()
Dim scheduler = Await schedulerFactory.GetScheduler()
Await scheduler.Start()
Await scheduler.ScheduleJob(job, trigger)
VB   C#

Beharrlichkeit im Beruf

Richten Sie Quartz.NET so ein, dass Aufträge und Trigger-Metadaten in einem dauerhaften Speicher wie einer Datenbank gespeichert werden. Dies garantiert Zuverlässigkeit und ermöglicht es, dass die Aufträge einen Neustart der Anwendung überstehen.

Fehlerbehandlung

Integrieren Sie eine Fehlerbehandlung und Wiederholungslogik in Ihre Auftragsausführungslogik, um Fehlschläge angemessen zu behandeln. Quartz.NET bietet integrierte Methoden zur Verwaltung von Ausnahmen und zur Wiederholung von Aufgaben.

Clustering

Um hohe Verfügbarkeit und Skalierbarkeit bei der Verwendung von Quartz.NET in einer verteilten Umgebung zu gewährleisten, sollten Sie ein Clustering einrichten. Die Scheduler-Instanz kann dank Clustering in einem Server-Cluster zusammenarbeiten und Aufgaben ausführen.

Injektion von Abhängigkeiten

Einrichten von Quartz.NET für die Kommunikation mit Ihrer Dependency Injection (DI) container zur Verwaltung von Job-Abhängigkeiten, Konfiguration und Lebenszyklus, wenn Ihre Anwendung ein Dependency Injection Framework verwendet.

IronPDF

Quarz .NET (Wie es für Entwickler funktioniert): Abbildung 1 - IronPDF-Webseite

Das Erstellen, Ändern und Rendern von PDF-Dokumenten innerhalb von .NET-Programmen wird durch das bekannte .NET-Paket IronPDF ermöglicht. Für die Interaktion mit PDFs stehen eine Vielzahl von Funktionen zur Verfügung: Erstellung von PDFs aus HTML-Inhalten, Fotos oder unverarbeiteten Daten; anfügen von Text, Bildern und Formen an bereits vorhandene PDF-Dokumente; konvertierung von HTML-Seiten in PDF-Dateien; und Extrahieren von Text und Bildern aus PDFs.

Die Einfachheit und Benutzerfreundlichkeit von IronPDF sind zwei seiner Hauptvorteile. Entwickler können dank der benutzerfreundlichen API und der umfangreichen Dokumentation problemlos mit der PDF-Erstellung in ihren .NET-Projekten beginnen. Die Geschwindigkeit und Effizienz von IronPDF sind weitere Merkmale, die es Entwicklern ermöglichen, schnell und effektiv hochwertige PDF-Dokumente zu erstellen.

IronPDF Kernfunktionen

  • Erstellung von PDFs aus Rohdaten, HTML und Bildern.
  • Extrahieren von Text und Bildern aus PDF-Dateien.
  • Ermöglicht das Einfügen von Kopf- und Fußzeilen sowie Wasserzeichen in PDF-Dateien.
  • Erstellen Sie PDF-Dokumente mit Passwort- und Verschlüsselungssicherheit.
  • Bietet Tools zum Ausfüllen von Formularen und zur digitalen Unterschrift.

Verwendung von Quarz mit IronPDF

Um IronPDF mit Quartz.NET in einer Konsolen- oder ASP.NET Core-Anwendung zu nutzen, können Sie IronPDF verwenden, um einen geplanten Hintergrundjob einzurichten, der Aufgaben im Zusammenhang mit der PDF-Produktion ausführt.

Installation der Pakete Quartz und IronPDF

Stellen Sie zunächst sicher, dass Sie die erforderlichen NuGet-Pakete für IronPDF und Quartz.NET in Ihrem .NET-Projekt über die Visual Studio-Paketmanager-Konsole mit den folgenden Befehlen installiert haben:

Install-Package Quartz
Install-Package IronPdf
Install-Package Quartz
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package Quartz Install-Package IronPdf
VB   C#

Code-Beispiel

In diesem Abschnitt wird gezeigt, wie man einen Quartz-Auftrag erstellt, der IronPDF zur Erstellung von PDF-Dokumenten verwendet.

public class PdfGenerationJob : IJob
{
    public async Task Execute(IJobExecutionContext context)
    {
        // Generate PDF using IronPDF
        var htmlContent = "<h1>Hello, IronPDF!</h1>";
        var pdfRenderer = new IronPdf.HtmlToPdf();
        var pdfDocument = pdfRenderer.RenderHtmlAsPdf(htmlContent);
        // Save PDF to file or perform other actions
        pdfDocument.SaveAs("output.pdf");
    }
}
public class PdfGenerationJob : IJob
{
    public async Task Execute(IJobExecutionContext context)
    {
        // Generate PDF using IronPDF
        var htmlContent = "<h1>Hello, IronPDF!</h1>";
        var pdfRenderer = new IronPdf.HtmlToPdf();
        var pdfDocument = pdfRenderer.RenderHtmlAsPdf(htmlContent);
        // Save PDF to file or perform other actions
        pdfDocument.SaveAs("output.pdf");
    }
}
Public Class PdfGenerationJob
	Implements IJob

	Public Async Function Execute(ByVal context As IJobExecutionContext) As Task
		' Generate PDF using IronPDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1>"
		Dim pdfRenderer = New IronPdf.HtmlToPdf()
		Dim pdfDocument = pdfRenderer.RenderHtmlAsPdf(htmlContent)
		' Save PDF to file or perform other actions
		pdfDocument.SaveAs("output.pdf")
	End Function
End Class
VB   C#

Richten Sie Quartz.NET so ein, dass ein Auslöser verwendet wird, um den PDF-Erstellungsprozess nach einem vorgegebenen Zeitplan auszuführen.

var schedulerFactory = new StdSchedulerFactory();
var scheduler = await schedulerFactory.GetScheduler();
await scheduler.Start();

var job = JobBuilder.Create<PdfGenerationJob>()
    .WithIdentity("pdfGenerationJob", "pdfGenerationGroup")
    .Build();

var trigger = TriggerBuilder.Create()
    .WithIdentity("pdfGenerationTrigger", "pdfGenerationGroup")
    .WithSimpleSchedule(x => x
        .WithIntervalInMinutes(30) // Run every 30 minutes
        .RepeatForever())
    .Build();

await scheduler.ScheduleJob(job, trigger);
var schedulerFactory = new StdSchedulerFactory();
var scheduler = await schedulerFactory.GetScheduler();
await scheduler.Start();

var job = JobBuilder.Create<PdfGenerationJob>()
    .WithIdentity("pdfGenerationJob", "pdfGenerationGroup")
    .Build();

var trigger = TriggerBuilder.Create()
    .WithIdentity("pdfGenerationTrigger", "pdfGenerationGroup")
    .WithSimpleSchedule(x => x
        .WithIntervalInMinutes(30) // Run every 30 minutes
        .RepeatForever())
    .Build();

await scheduler.ScheduleJob(job, trigger);
Dim schedulerFactory = New StdSchedulerFactory()
Dim scheduler = Await schedulerFactory.GetScheduler()
Await scheduler.Start()

Dim job = JobBuilder.Create(Of PdfGenerationJob)().WithIdentity("pdfGenerationJob", "pdfGenerationGroup").Build()

Dim trigger = TriggerBuilder.Create().WithIdentity("pdfGenerationTrigger", "pdfGenerationGroup").WithSimpleSchedule(Function(x) x.WithIntervalInMinutes(30).RepeatForever()).Build()

Await scheduler.ScheduleJob(job, trigger)
VB   C#

So starten Sie den Quartz Scheduler und beginnen mit der Ausführung der geplanten Aufgaben:

// Start the scheduler
await scheduler.Start();
// Optionally, monitor scheduler for job execution
// Start the scheduler
await scheduler.Start();
// Optionally, monitor scheduler for job execution
' Start the scheduler
Await scheduler.Start()
' Optionally, monitor scheduler for job execution
VB   C#

Nachfolgend sehen Sie die mit dem obigen Code erzeugte Ausgabe.

Quarz .NET (Wie es für Entwickler funktioniert): Abbildung 2 - Ausgabe des IronPDF- und Quartz.NET-Codebeispiels

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass die Kombination von Quartz.NET und IronPDF eine gute Möglichkeit zur Automatisierung von Vorgängen im Zusammenhang mit der Erstellung von PDFs in .NET-Anwendungen bietet. Mit Hilfe des leistungsstarken und anpassungsfähigen Planungssystems von Quartz.NET können Entwickler Jobs und Trigger erstellen, die Aktivitäten in vorgegebenen Intervallen oder Zeiträumen ausführen. IronPDF hingegen gibt Entwicklern alle Werkzeuge an die Hand, die sie zum Erstellen und Arbeiten mit PDF-Dokumenten benötigen. Mit HTML, Grafiken oder Rohdaten können Entwickler professionell aussehende PDFs erstellen.

Entwickler können typische PDF-Erzeugungsvorgänge in verteilten Anwendungen automatisieren, z. B. die Erstellung von Berichten, Rechnungen oder Dokumenten in bestimmten Zeitabständen oder als Reaktion auf Auslöser, indem sie die PDF-Erzeugungsfunktion von IronPDF mit den Zeitplanungsfunktionen von Quartz.NET integrieren. Diese Integration ermöglicht es Entwicklern, hochwertige PDF-Dokumente einfacher zu erstellen und an Kunden oder Auftraggeber zu senden, indem sie die Arbeitsabläufe bei der Dokumentenerstellung optimieren, die Produktivität steigern und den manuellen Arbeitsaufwand reduzieren.

IronPDF ist preisgünstig und wird mit einer lebenslangen Lizenz geliefert, wenn es als Teil des Pakets erworben wird. Da das Paket nur 749 $ kostet, was eine einmalige Gebühr für mehrere Systeme ist, bietet es einen außergewöhnlichen Wert. Sie bietet den Lizenzinhabern rund um die Uhr online technische Unterstützung. Wenn Sie mehr über die Produkte von Iron Software erfahren möchten, besuchen Sie diese Seite.

< PREVIOUS
tye .NET (Wie es für Entwickler funktioniert)
NÄCHSTES >
Supersocket C# Beispiel (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >