AIDE .NET

Quartz .NET (Comment ça marche pour les développeurs)

Publié juillet 1, 2024
Partager:

Introduction à Quartz.NET

Pour les applications .NET, Quartz.NET est une boîte à outils de planification des tâches open-source très appréciée. Il offre aux programmeurs une base solide pour planifier et exécuter des tâches, des programmes ou des processus à des périodes prédéterminées, à des intervalles ou en réponse à des déclencheurs. Quartz.NET facilite l'élaboration de scénarios de planification complexes dans les applications .NET, qu'il s'agisse d'envoyer des notifications, de planifier des tâches, de générer des rapports ou d'effectuer des activités de maintenance périodiques. Quartz.NET est parfait comme système de planification des tâches pour la création de petites applications jusqu'aux systèmes d'entreprise à grande échelle.

Quartz.NET, avec sa dernière version du planificateur, offre une intégration transparente avec divers fournisseurs de bases de données pris en charge, ce qui permet aux développeurs d'étendre ses fonctionnalités à l'aide d'une méthode d'extension pratique tout en garantissant une exécution fiable des tâches en tant que service hébergé.

L'intégration de Quartz.NET et d'IronPDF for .NET permet de créer des systèmes de planification fiables dotés de solides capacités de production de PDF dans des applications .NET. Bien qu'IronPDF offre une suite complète d'outils pour la création, la modification et l'affichage de documents PDF, Quartz.NET propose un système de planification polyvalent et fiable. Combinées, elles permettent aux développeurs d'automatiser les opérations de création de PDF dans le cadre de flux de travail ou de programmer des tâches en arrière-plan, ce qui améliore l'utilité et la fonctionnalité de leurs applications.

Caractéristiques principales

Horaires flexibles

Quartz.NET permet aux programmeurs de créer des calendriers qui indiquent aux programmes de s'exécuter à des intervalles ou à des moments prédéterminés (par exemple, toutes les heures, tous les jours, toutes les 30 minutes). Il est compatible avec des modèles d'ordonnancement complexes, tels que les expressions cron, qui offrent un contrôle précis des heures d'exécution du code, des tâches et des services.

Exécution basée sur des déclencheurs

Dans Quartz.NET, les travaux peuvent être lancés par divers déclencheurs. Il s'agit notamment de déclencheurs basés sur le calendrier (qui, par exemple, excluent les week-ends)déclencheurs simples (qui fonctionnent selon un horaire fixe)les déclencheurs peuvent être de nature professionnelle ou sur mesure, et dépendent de circonstances ou d'événements extérieurs.

Persévérance dans l'emploi

Quartz.NET a la capacité de planifier des tâches de manière persistante, ce qui permet de stocker les tâches planifiées et leur historique dans une base de données. La résilience de la programmation des travaux en cas de défaillance ou de redémarrage de l'application est garantie, et la mise en grappe des travaux pour une haute disponibilité et une grande évolutivité est rendue possible.

Contrôle de la concurence

Pour garantir la sécurité et l'efficacité des tâches, Quartz.NET dispose d'outils intégrés de contrôle de la concurrence. Pour contrôler la simultanéité de l'exécution des tâches, les développeurs peuvent mettre en place des pools de threads, des priorités de tâches et des contraintes d'exécution.

Chaînage de tâches et gestion des dépendances

Les tâches peuvent être exécutées dans un ordre précis et les relations entre elles peuvent être définies par les développeurs grâce à la prise en charge par Quartz.NET de l'enchaînement des tâches et de la gestion des dépendances. Il est ainsi possible de créer des situations d'orchestration complexes pour les tâches, les services et les procédures en arrière-plan.

Traitement des erreurs et techniques de réessai

Pour gérer les échecs avec élégance, Quartz.NET dispose de techniques de gestion des erreurs et de relance. En cas de défaillance temporaire ou d'exception, les développeurs peuvent mettre en place des politiques de réessai et des techniques de traitement des erreurs pour garantir que les travaux sont réessayés ou reprogrammés.

Mise en grappe et évolutivité

Plusieurs instances de l'ordonnanceur peuvent coordonner et exécuter des tâches sur une grappe de serveurs grâce à la prise en charge par Quartz.NET de la mise en grappe dans l'ordonnancement des tâches distribuées. Cela garantit la fiabilité du planificateur et de l'exécution des tâches dans un contexte distribué, en permettant l'extensibilité horizontale et la tolérance aux pannes.

Intégration à l'écosystème .NET

Quartz.NET s'interface facilement avec l'écosystème .NET, qui comprend les systèmes de messagerie (Rebus.NET, MassTransit)cadre d'enregistrement des données (Serilog, NLog)et les cadres d'injection de dépendances les plus répandus (Autofac, Microsoft.Extensions.DependencyInjection).

Créer et configurer Quartz.NET

Définir les tâches et les déclencheurs

Pour les tâches que vous souhaitez exécuter, établissez des travaux et des déclencheurs. La tâche à accomplir est représentée par un objet contextuel et une classe de travail, et la fréquence et le moment de l'exécution du travail sont déterminés par un déclencheur.

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#

Configuration et initialisation de l'ordonnanceur

Après avoir configuré le planificateur de tâches avec la configuration spécifiée pour planifier les tâches d'arrière-plan, les travaux et les déclencheurs, lancez le planificateur pour commencer à planifier et à exécuter les travaux.

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#

Persévérance dans l'emploi

Configurez Quartz.NET pour qu'il stocke les tâches et les métadonnées des déclencheurs dans une mémoire persistante, comme une base de données. Cela garantit la fiabilité et permet aux travaux de survivre aux redémarrages de l'application.

Gestion des erreurs

Incorporez la gestion des erreurs et la logique de réessai dans votre logique d'exécution des tâches afin de traiter les échecs avec élégance. Quartz.NET fournit des méthodes intégrées pour gérer les exceptions et relancer les tâches.

Regroupement

Pour garantir une haute disponibilité et une grande évolutivité lors de l'utilisation de Quartz.NET dans un environnement distribué, configurez la mise en grappe. L'instance du planificateur peut collaborer et exécuter des tâches au sein d'une grappe de serveurs grâce à la mise en grappe.

Injection de dépendance

Configurez Quartz.NET pour qu'il communique avec votre injection de dépendances (DI) pour gérer les dépendances, la configuration et le cycle de vie des tâches si votre application utilise un cadre d'injection de dépendances.

IronPDF

Quartz .NET (Comment ça marche pour les développeurs) : Figure 1 - Page web d'IronPDF

La création, la modification et le rendu de documents PDF à l'intérieur de programmes .NET sont rendus possibles par le célèbre paquetage .NET IronPDF for .NET. Une pléthore de fonctionnalités sont disponibles pour interagir avec les PDF : création de PDF à partir de contenu HTML, de photos ou de données non traitées ; l'ajout de texte, d'images et de formes à des documents PDF préexistants ; convertir des pages HTML en PDF ; et l'extraction de texte et d'images à partir de PDF.

La simplicité et la convivialité d'IronPDF sont deux de ses principaux avantages. Les développeurs peuvent facilement commencer à générer des PDF dans leurs projets .NET grâce à son API conviviale et à sa documentation complète. La vitesse et l'efficacité d'IronPDF sont d'autres caractéristiques qui permettent aux développeurs de produire rapidement et efficacement des documents PDF de haute qualité.

Caractéristiques principales d'IronPDF

  • Création de PDF à partir de données brutes, de HTML et d'images.
  • Extraction de texte et d'images à partir de fichiers PDF.
  • Permet d'inclure des en-têtes, des pieds de page et des filigranes dans les fichiers PDF.
  • Créez des documents PDF sécurisés par mot de passe et par cryptage.
  • Fournit des outils pour remplir des formulaires et signer numériquement.

Utilisation du quartz avec IronPDF

Pour commencer à utiliser IronPDF avec Quartz.NET dans une application console ou ASP.NET Core, vous pouvez utiliser IronPDF pour établir une tâche d'arrière-plan planifiée qui exécute des tâches liées à la production de PDF.

Installation des paquets Quartz et IronPDF

Tout d'abord, assurez-vous d'avoir installé les paquets NuGet requis pour IronPDF et Quartz.NET dans votre projet .NET avec la console du gestionnaire de paquets de Visual Studio à l'aide des commandes suivantes :

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#

Exemple de code

Cette section montre comment créer une tâche Quartz qui utilise IronPDF pour créer des documents 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 : 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#

Configurez Quartz.NET pour qu'il utilise un déclencheur afin d'exécuter le processus de création de PDF selon un calendrier prédéterminé.

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#

Pour lancer le planificateur Quartz et commencer à exécuter les tâches planifiées :

// 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#

Voici le résultat généré par le code ci-dessus.

Quartz .NET (Comment ça marche pour les développeurs) : Figure 2 - Sortie de l'exemple de code IronPDF for .NET et Quartz .NET

Conclusion

En résumé, la combinaison de Quartz.NET et d'IronPDF constitue un moyen efficace d'automatiser les opérations liées à la création de PDF dans les applications .NET. Grâce au système de planification puissant et adaptable de Quartz.NET, les développeurs peuvent créer des tâches et des déclencheurs qui exécuteront des activités à des intervalles ou des durées prédéterminés. IronPDF, quant à lui, offre aux développeurs tous les outils dont ils ont besoin pour créer et travailler avec des documents PDF. À l'aide de HTML, de graphiques ou de données brutes, les développeurs peuvent créer des PDF de qualité professionnelle.

Les développeurs peuvent automatiser les opérations typiques de génération de PDF dans les applications distribuées, telles que la création de rapports, de factures ou de documents, à des intervalles prédéterminés ou en réaction à des déclencheurs, en intégrant la fonctionnalité de génération de PDF d'IronPDF aux capacités de programmation de Quartz.NET. Cette intégration permet aux développeurs de produire et d'envoyer plus facilement des documents PDF de haute qualité à leurs clients en rationalisant les flux de production de documents, en augmentant la productivité et en réduisant le travail manuel.

IronPDF est proposé à un prix raisonnable et est accompagné d'une licence à vie lorsqu'il est acheté dans le cadre du package. Comme l'ensemble ne coûte que 749 dollars, ce qui correspond à une charge unique pour plusieurs systèmes, il offre une valeur exceptionnelle. Il fournit une assistance technique en ligne 24 heures sur 24 aux détenteurs de licences. Pour en savoir plus sur les produits fabriqués par Iron Software, rendez-vous sur cette page.

< PRÉCÉDENT
tye .NET (Comment ça marche pour les développeurs)
SUIVANT >
Exemple C# de Supersocket (Comment ça marche pour les développeurs)