IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

Quartz .NET (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 21 kwietnia 2026

Wprowadzenie do Quartz.NET

W aplikacjach .NET, Quartz.NET jest lubianym narzędziem open-source do planowania zadań. Daje programistom solidne podstawy do planowania i realizacji zadań, harmonogramów lub procesów w określonych okresach, przedziałach czasowych lub w odpowiedzi na wyzwałącze. Quartz.NET ułatwia tworzenie skomplikowanych scenariuszy harmonogramów w aplikacjach .NET, niezależnie od tego, czy chodzi o dostarczanie powiadomień, planowanie prac, generowanie raportów, czy prowadzenie okresowych czynności konserwacyjnych. Quartz.NET jest idealny jako system planowania zadań do tworzenia małych aplikacji aż po systemy korporacyjne na dużą skalę.

Dzięki najnowszej wersji harmonogramu, Quartz.NET oferuje bezproblemową integrację z różnymi obsługiwanymi dostawcami baz danych, umożliwiając programistom rozszerzenie jego funkcjonalności za pomocą wygodnej metody rozszerzenia przy jednoczesnym zapewnieniu niezawodnego wykonania zadań jako usługa hostowana.

Tworzenie niezawodnych systemów planowania z silnymi możliwościami produkcji PDF w aplikacjach .NET jest możliwe dzięki integracji Quartz.NET z IronPDF. Chociaż IronPDF oferuje pełen zestaw narzędzi do tworzenia, modyfikowania i wyświetlania dokumentów PDF, Quartz.NET oferuje wszechstronny i niezawodny system planowania. W połączeniu dają one programistom możliwość automatyzacji operacji tworzenia PDF jako części workflow lub planowania zadań w tle, co poprawia przydatność i funkcjonalność ich aplikacji.

Najważniejsze cechy

Elastyczne Harmonogramowanie

Quartz.NET umożliwia programistom tworzenie harmonogramów, które mówią programom, aby działały w określonych odstępach czasu lub porach (np. co godzinę, codziennie, co 30 minut). Jest kompatybilny z złożonymi wzorcami harmonogramowania, takimi jak wyrażenia cron, które oferują precyzyjną kontrolę nad czasem wykonywania kodu, zadań i usług.

Wykonanie oparte na wyzwałącząch

W Quartz.NET zadania mogą być uruchamiane przez różne wyzwałącze. Obejmują one wyzwałącze oparte na kalendarzu (które na przykład wykluczają weekendy), proste wyzwałącze (które działają zgodnie z ustalonym harmonogramem), wyzwałącze zadań i niestandardowe wyzwałącze zależne od zewnętrznych okoliczności lub zdarzeń.

Trwałość Zadań

Quartz.NET ma możliwość planowania zadań w sposób trwały, umożliwiając przechowywanie zaplanowanych zadań i ich zakończoną historię w bazie danych. Odporność harmonogramu zadań na awarie aplikacji lub ponowne uruchomienia jest zagwarantowana, a grupowanie zadań w celu zapewnienia wysokiej dostępności i skalowalności jest możliwe.

Kontrola współbieżności

Aby zagwarantować, że zadania są wykonywane bezpiecznie i skutecznie, Quartz.NET ma wbudowane narzędzia kontroli współbieżności. Aby kontrolować współbieżność wykonywania zadań, programiści mogą ustawiać pule wątków, priorytety zadań i ograniczenia wykonania.

Łańcuchy zadań i Zarządzanie Zależnościami

Zadania mogą być wykonywane w określonej kolejności, a powiązania między nimi mogą być określane przez programistów dzięki obsłudze Quartz.NET dla łańcuchów zadań i zarządzania zależnościami. Umożliwia to tworzenie skomplikowanych scenariuszy orkiestracji dla zadań w tle, usług i procedur.

Obsługa błędów i techniki ponownego wykonywania

Aby łagodnie zarządzać awariami, Quartz.NET posiada strategie obsługi błędów i ponawiania prób. W przypadku tymczasowych awarii lub wyjątków programiści mogą ustawiać polityki ponawiania prób i techniki obsługi błędów, aby zagwarantować, że zadania zostaną powtórzone lub ponownie zaplanowane.

Grupowanie i skalowalność

Dzięki obsłudze grupowania w rozproszonym harmonogramowaniu zadań, wiele instancji harmonogramu może koordynować i realizować zadania w klastrze serwerów dzięki Quartz.NET. To gwarantuje niezawodny harmonogramując zadań i wykonanie w rozproszonym kontekście, umożliwiając poziomą skalowalność i odporność na awarie.

Integracja z ekosystemem .NET

Quartz.NET łatwo integruje się z ekosystemem .NET, który obejmuje systemy przesyłania wiadomości (Rebus.NET, MassTransit), frameworki logowania (Serilog, NLog) i popularne frameworki do wstrzykiwania zależności (Autofac, Microsoft.Extensions.DependencyInjection).

Tworzenie i konfiguracja Quartz.NET

Definiowanie zadań i wyzwałączy

Dla zadań, które chcesz uruchomić, utwórz zadania i wyzwałącze. Zadanie do wykonania jest reprezentowane przez obiekt kontekstu i klasę zadania, a częstotliwość i czas wykonania zadania są ustalane przez wyzwalacz.

using Quartz;

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

// Build the job instance using JobBuilder
var job = JobBuilder.Create<MyJob>()
    .WithIdentity("myJob", "group1") // Assign a unique name and group to the job
    .Build();

// Create a trigger to define when the job should be executed
var trigger = TriggerBuilder.Create()
    .WithIdentity("myTrigger", "group1") // Assign a unique name and group to the trigger
    .WithCronSchedule("0 0/5 * * * ?") // Run every 5 minutes based on the cron expression
    .Build();

Konfiguracja i inicjalizacja harmonogramu

Po skonfigurowaniu harmonogramu zadań przy użyciu określonej konfiguracji, aby planować zadania w tle, zadania i wyzwałącze, uruchom harmonogram, aby rozpocząć planowanie i wykonywanie zadań.

using Quartz;
using Quartz.Impl;

// Create a scheduler factory and get a scheduler instance
var schedulerFactory = new StdSchedulerFactory();
var scheduler = await schedulerFactory.GetScheduler(); 

// Start the scheduler
await scheduler.Start();

// Schedule the job with its corresponding trigger
await scheduler.ScheduleJob(job, trigger);

Trwałość Zadań

Skonfiguruj Quartz.NET do przechowywania metadanych zadań i wyzwałączy w trwałym przechowalniku, takim jak baza danych. To gwarantuje niezawodność i pozwala zadaniom przetrwać ponowne uruchomienia aplikacji.

Obsługa błędów

Inkorporuj obsługę błędów i logikę ponawiania prób do logiki wykonywania zadań, aby łagodnie obsługiwać awarie. Quartz.NET dostarcza wbudowanych metod do zarządzania wyjątkami i ponawiania zadań.

Grupowanie

Aby zapewnić wysoką dostępność i skalowalność podczas używania Quartz.NET w rozproszonym środowisku, skonfiguruj grupowanie. Instancja harmonogramu może współpracować i realizować zadania w klastrze serwerów dzięki grupowaniu.

Wstrzykiwanie zależności

Skonfiguruj Quartz.NET do komunikacji z kontenerem wstrzykiwania zależności (DI) w celu zarządzania zależnościami zadań, konfiguracją i cyklem życia, jeśli twoja aplikacja używa frameworka do wstrzykiwania zależności.

IronPDF

Quartz .NET (Jak to działa dla programistów): Rysunek 1 - strona internetowa IronPDF

Tworzenie, modyfikowanie i renderowanie dokumentów PDF wewnątrz programów .NET jest możliwe dzięki dobrze znanemu pakietowi .NET IronPDF. Dostępnych jest mnóstwo funkcji do pracy z PDF-ami: tworzenie PDF-ów z treści HTML, zdjęć lub nieprzetworzonych danych; dodawanie tekstu, obrazów i kształtów do istniejących dokumentów PDF; konwersja stron HTML do PDF-ów; oraz wyodrębnianie tekstu i obrazów z PDF-ów.

IronPDF wyróżnia się w konwersji HTML do PDF, zapewniając precyzyjne zachowanie oryginalnych układów i stylów. Idealnie nadaje się do tworzenia plików PDF z treści internetowych, takich jak raporty, faktury i dokumentacja. Dzięki obsłudze plików HTML, adresów URL i surowych ciągów znaków HTML, IronPDF z łatwością tworzy wysokiej jakości dokumenty PDF.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert an HTML string to a PDF document
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert an HTML file to a PDF document
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert a URL to a PDF document
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

Prostota i przyjazność dla użytkownika IronPDF to jedne z jego głównych zalet. Programiści mogą łatwo zacząć tworzyć PDF-y w swoich projektach .NET dzięki jego przyjaznemu interfejsowi API i rozbudowanej dokumentacji. Szybkość i wydajność IronPDF to kolejne cechy, które pozwalają programistom szybko i efektywnie tworzyć wysokiej jakości dokumenty PDF.

Podstawowe funkcje IronPDF

  • Tworzenie PDF-ów z danych surowych, HTML i obrazów.
  • Wyodrębnianie tekstu i obrazów z plików PDF.
  • Pozwala na dodawanie nagłówków, stopek i znaków wodnych do plików PDF.
  • Tworzenie dokumentów PDF z zabezpieczeniami w formie haseł i szyfrowania.
  • Dostarcza narzędzi do wypełniania formularzy i podpisywania cyfrowego.

Używanie Quartz z IronPDF

Aby rozpocząć używanie IronPDF z Quartz.NET w aplikacji konsolowej lub ASP.NET Core, można użyć IronPDF do utworzenia zaplanowanego zadania w tle, które wykonuje zadania związane z produkcją PDF.

Instalacja pakietów Quartz i IronPDF

Najpierw upewnij się, że zainstalowano wymagane pakiety NuGet dla IronPDF i Quartz.NET w swoim projekcie .NET za pomocą konsoli menedżera pakietów Visual Studio, używając następujących poleceń:

Install-Package Quartz
Install-Package IronPdf
SHELL

Przykład kodu

Ta sekcja demonstruje, jak stworzyć zadanie Quartz, które używa IronPDF do tworzenia dokumentów PDF.

using Quartz;
using IronPdf;

// Implementing a job that generates a PDF using IronPDF
public class PdfGenerationJob : IJob
{
    public async Task Execute(IJobExecutionContext context)
    {
        // Generating PDF using IronPDF
        var htmlContent = "<h1>Hello, IronPDF!</h1>";
        var pdfRenderer = new HtmlToPdf();
        var pdfDocument = pdfRenderer.RenderHtmlAsPdf(htmlContent);

        // Save the generated PDF to a file
        pdfDocument.SaveAs("output.pdf");
    }
}

Skonfiguruj Quartz.NET, aby używać wyzwalacza do uruchamiania procesu tworzenia PDF-a zgodnie z ustalonym harmonogramem.

// Create and configure the Quartz scheduler
var schedulerFactory = new StdSchedulerFactory();
var scheduler = await schedulerFactory.GetScheduler();
await scheduler.Start();

// Define the job and bind it to our PdfGenerationJob class
var job = JobBuilder.Create<PdfGenerationJob>()
    .WithIdentity("pdfGenerationJob", "pdfGenerationGroup")
    .Build();

// Define a trigger to schedule the PDF generation job
var trigger = TriggerBuilder.Create()
    .WithIdentity("pdfGenerationTrigger", "pdfGenerationGroup")
    .WithSimpleSchedule(x => x
        .WithIntervalInMinutes(30) // Run every 30 minutes
        .RepeatForever())
    .Build();

// Schedule the job using the scheduler
await scheduler.ScheduleJob(job, trigger);

Aby uruchomić harmonogram Quartz i rozpocząć realizację zaplanowanych zadań:

// Start the scheduler
await scheduler.Start();
// Optionally, monitor scheduler for job execution

Poniżej znajduje się wynik wygenerowany na podstawie powyższego kodu.

Quartz .NET (Jak to działa dla programistów): Rysunek 2 - Wynik z przykładu kodu IronPDF i Quartz.NET

Wnioski

Podsumowując, połączenie Quartz.NET i IronPDF zapewnia skuteczny sposób automatyzacji operacji związanych z tworzeniem PDF-ów w aplikacjach .NET. Dzięki potężnemu i elastycznemu systemowi harmonogramowania Quartz.NET, programiści mogą tworzyć zadania i wyzwałącze, które będą wykonywać czynności w określonych odstępach czasowych lub trwaniach. IronPDF z kolei dostarcza programistom wszystkich narzędzi potrzebnych do tworzenia i pracy z dokumentami PDF. Przy użyciu HTML, grafiki lub danych surowych, programiści mogą tworzyć profesjonalnie wyglądające PDF-y.

Programiści mogą zautomatyzować typowe operacje generowania PDF-ów w rozproszonych aplikacjach, takie jak tworzenie raportów, faktur lub dokumentów, w określonych odstępach czasu lub w reakcji na wyzwałącze, łącząc możliwości generowania PDF-a IronPDF z funkcjami harmonogramowania Quartz.NET. Ta integracja pozwala programistom łatwiej tworzyć i wysyłać wysokiej jakości dokumenty PDF do klientów lub partnerów biznesowych, usprawniając przepływy generowania dokumentów, zwiększając wydajność i zmniejszając pracę ręczną.

IronPDF jest przystępne cenowo i dołączone jest w pakiecie z wieczystą licencją po zakupie. Ponieważ pakiet kosztuje jedynie $999, co jest jednorazową opłatą za wiele systemów, oferuje wyjątkową wartość. Oferuje całodobowe wsparcie inżynieryjne online dla posiadaczy licencji. Aby dowiedzieć się więcej o produktach wytwarzanych przez Iron Software, odwiedź stronę produktów Iron Software na stronie internetowej Iron Software.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta