Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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()
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)
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.
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.
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.
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.
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.
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.
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
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
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)
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
Nachfolgend sehen Sie die mit dem obigen Code erzeugte Ausgabe.
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.
9 .NET API-Produkte für Ihre Bürodokumente