.NET幫助 Quartz .NET (對開發者如何運作) Jacob Mellor 更新:2025年6月22日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 Quartz.NET介紹 .NET應用程式中,Quartz.NET 是一個受歡迎的開源任務調度工具包。 它為開發人員提供了一個強大的基礎,用於計劃和執行工作、計畫或在預定期間、間隔或觸發條件下的處理。 Quartz.NET 讓您能夠在 .NET 應用程式中構建複雜的調度場景,無論是傳送通知、安排工作、生成報告,還是完成定期維護活動。 Quartz.NET 是為從小型應用程式到大型企業系統創建作業調度系統的理想選擇。 Quartz.NET 最新的調度器版本,提供與各種受支援的資料庫提供者的無縫整合,使開發人員能夠使用便利的擴充方法擴展其功能,同時確保作為託管服務的可靠任務執行。 通過將 Quartz.NET 與 IronPDF 整合,使在 .NET 應用程式中構建具有強大 PDF 生成能力的可靠調度系統成為可能。 IronPDF 提供了一套完整的工具來創建、修改和顯示 PDF 文件,而 Quartz.NET 提供了一個多功能且可靠的調度系統。 當兩者結合時,它們使開發人員能夠自動化 PDF 創建操作作為工作流程的一部分或安排背景工作,從而提高其應用程式的實用性和功能。 主要特點 靈活的調度 Quartz.NET 讓程式設計師能夠創建計畫,以告知程式在預定的時間間隔或時間運行(例如,每小時、每天、每 30 分鐘)。 它兼容複雜的調度模式,例如 cron 表達式,提供對代碼、工作和服務執行時間的精確控制。 基於觸發的執行 在 Quartz.NET 中,作業可以由各種觸發器開始。 這些包括基於日曆的觸發器(例如,排除週末)、簡單觸發器(根據設定的時間表運行)、工作觸發器以及基於外部情況或事件的自定義觸發器。 工作持久性 Quartz.NET 能夠持續計畫工作,允許在資料庫中存儲已計畫的任務及其完成的歷史記錄。 無論應用程式失敗或重啟,作業計畫可靠性得以確保,並且可實現高可用性和可擴展性的工作群集。 併發控制 為保證任務的安全高效完成,Quartz.NET 內建了併發控制工具。 開發人員可以設置執行緒池、作業優先順序和執行約束來控制作業執行的併發性。 工作鏈結和相依管理 得益於 Quartz.NET 對於工作鏈結和相依管理的支持,開發人員可以按指定順序執行作業並定義作業之間的關係。 這使得可以為背景作業、服務和過程創建複雜的協作情境。 錯誤處理和重試技術 為了優雅地處理失敗,Quartz.NET 提供錯誤處理和重試技術。 在遇到暫時性失敗或例外情況時,開發人員可以設置重試政策和錯誤處理技術,以確保作業被重試或重新計畫。 群集與可擴展性 Quartz.NET 支持分佈式作業排程中的群集功能,使調度器的多個實例可以在一組伺服器上協調和執行任務。 這確保了在分佈式上下文中可靠的作業調度程序和執行,實現水平擴展性和容錯性。 與 .NET 生態系統整合 Quartz.NET 可以輕鬆地與 .NET 生態系統集成,其中包括消息系統(Rebus.NET,MassTransit),日誌框架(Serilog,NLog),以及流行的相依注入框架(Autofac,Microsoft.Extensions.DependencyInjection)。 創建和配置 Quartz.NET 定義作業和觸發器 對於您希望運行的任務,確定作業和觸發器。 任務由上下文物件和作業類表示,而觸發器決定了作業執行的頻率和時間。 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(); 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(); $vbLabelText $csharpLabel 配置和初始化調度器 在設置計畫背景任務、工作和觸發器的作業調度器後,啟動調度器以開始計畫和執行作業。 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); 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); $vbLabelText $csharpLabel 工作持久性 將 Quartz.NET 配置為將作業和觸發器元資料存儲在持久存儲中,例如資料庫中。 這確保了可靠性,並允許作業在應用程式重啟時存續。 錯誤處理 將錯誤處理和重試邏輯整合到您的作業執行邏輯中,以優雅地處理失敗。 Quartz.NET 提供了內建的方法來管理例外和重試任務。 群集 在分佈環境中使用 Quartz.NET 時,設置群集以確保高可用性和可擴展性。 群集使調度器實例可以在一組伺服器之間協作和執行任務。 相依注入 如果您的應用程式使用相依注入框架,設置 Quartz.NET 與您的相依注入(DI)容器進行通信,以管理作業相依、配置和生命周期。 IronPDF IronPDF是眾所周知的 .NET 套件,可以在 .NET 程式中創建、修改和渲染 PDF 文件。 提供了大量功能來與 PDF 互動:從 HTML 內容、照片或未處理的數據創建 PDF; 將文本、圖像和形狀附加到現有的 PDF 文件; 將 HTML 頁面轉換為 PDF; 並從 PDF 提取文本和圖像。 IronPDF 在HTML 到 PDF轉換中表現出卓越的能力,確保精確保留原始的版面和風格。 它非常適合從基於網頁的內容(例如報告、發票和文件)創建 PDF。 支持 HTML 文件、URL 和原始 HTML 字串,IronPDF 可以輕鬆生成高品質的 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"); } } 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"); } } $vbLabelText $csharpLabel IronPDF 的簡單性和使用友好性是其主要優點之一。 開發人員可以輕鬆地在他們的 .NET 項目中使用其使用友好的 API 和詳細的文檔開始生成 PDF。 IronPDF 的速度和效率是其進一步的功能,使開發人員能夠快速有效地生成高品質的 PDF 文件。 IronPDF 主要功能 從原始數據、HTML 和圖像創建 PDF。 從 PDF 文件中提取文本和圖像。 允許您在 PDF 文件中包含標題、頁腳和浮水印。 創建帶有密碼和加密安全性的 PDF 文件。 提供工具來填寫表單和數位簽名。 使用 Quartz 與 IronPDF 要在控制台或 ASP.NET Core 應用程式中開始使用 IronPDF 與 Quartz.NET,您可以使用 IronPDF 來建立一個排程的背景工作,用於運行與 PDF 生成相關的任務。 安裝 Quartz 和 IronPDF 套件 首先,確保您在您的 .NET 項目中通過 Visual Studio 的套件管理器控制台使用以下命令安裝了 IronPDF 和 Quartz.NET 的必要 NuGet 套件: Install-Package Quartz Install-Package IronPdf Install-Package Quartz Install-Package IronPdf SHELL 代碼範例 本節演示如何創建一個使用 IronPDF 創建 PDF 文件的 Quartz 作業。 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"); } } 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"); } } $vbLabelText $csharpLabel 設置 Quartz.NET 使用觸發器在預定的計畫中運行 PDF 創建過程。 // 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); // 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); $vbLabelText $csharpLabel 要啟動 Quartz 調度器並開始執行計畫任務: // Start the scheduler await scheduler.Start(); // Optionally, monitor scheduler for job execution // Start the scheduler await scheduler.Start(); // Optionally, monitor scheduler for job execution $vbLabelText $csharpLabel 以下是上面代碼生成的輸出。 結論 總之,Quartz.NET 和 IronPDF 的結合為 .NET 應用程式中涉及 PDF 創建的操作提供了一個強大的自動化方式。 在 Quartz.NET 強大且靈活的調度系統的幫助下,開發人員可以創建作業和觸發器,這些作業和觸發器將在預定的間隔時間或持續時間中執行活動。 另一方面,IronPDF 為開發人員提供了創建和處理 PDF 文件所需的所有工具。 開發人員可以使用 HTML、圖形或原始數據,創建專業的 PDF。 通過將 IronPDF 的 PDF 生成功能與 Quartz.NET 的調度能力相結合,開發人員可以在分佈式應用程式中自動化常見的 PDF 生成操作,例如在預定的時間間隔或響應觸發器時創建報告、發票或文件。 這種整合使得開發人員更容易生成和傳輸高品質的 PDF 文件給客戶或客戶,透過簡化文件生成工作流程,提高生產力,並減少手動勞動。 當作為包的一部分購買時,IronPDF價格合理,並附有永久授權。 由於該包僅需一次付費的$799,可以用於多個系統,因此具有極高的價值。 它為授權持有者提供24小時不間斷的線上工程支援。 要了解更多Iron Software製造的產品,請訪問Iron Software網站上的Iron Software產品頁面。 常見問題解答 如何在 .NET 應用程式中自動生成 PDF? 您可以通過整合 Quartz.NET 與 IronPDF 自動生成 PDF。Quartz.NET 負責排程任務,而 IronPDF 允許您從 HTML、圖像或原始數據生成 PDF。 使用 Quartz.NET 排程任務的好處是什麼? Quartz.NET 提供強大的排程任務框架,具有靈活的排程、基於觸發器的執行、任務持久性、並發控制、任務鏈接、錯誤處理、重試技術以及用於擴展性的集群功能。 IronPDF 如何簡化 .NET 中的 PDF 生成? IronPDF 提供簡單易用的 API,將 HTML、圖像或原始數據轉換為 PDF 文件,適用於報告、發票和文件,保持原始佈局和樣式,確保高質量的輸出。 Quartz.NET 和 PDF 工具可以整合以增強工作流程自動化嗎? 可以,將 Quartz.NET 與像 IronPDF 這樣的 PDF 工具整合可以在 .NET 應用程式中排程和自動化 PDF 生成任務,提升效率和生產力。 什麼是 Quartz.NET 中的任務持久性,為什麼重要? Quartz.NET 中的任務持久性是指能夠在資料庫中存儲排程的任務及其歷史,確保應用程式故障或重啟後的恢復能力。對於維護任務排程和實現任務集群至關重要。 如何在 .NET 應用程序中將 HTML 轉換為 PDF? 您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換為 PDF,或使用 RenderHtmlFileAsPdf 將 HTML 文件直接轉換為 PDF。 Quartz.NET 支持哪些類型的排程模式? Quartz.NET 支持多種排程模式,包括 cron 表達式,這些表達式提供對執行時間的精確控制,並支持複雜的排程方案。 如何在我的 .NET 專案中安裝 Quartz.NET 和 IronPDF? 使用 Visual Studio 套件管理器控制台安裝 Quartz.NET 和 IronPDF,命令為:Install-Package Quartz 和 Install-Package IronPDF。 IronPDF 用於 PDF 操作的核心功能是什麼? IronPDF 提供如從 HTML、圖像或原始數據創建 PDF、提取文本和圖像、添加頁眉、頁腳和浮水印、以及密碼保護等安全選項。 Quartz.NET 和 IronPDF 的整合如何增強 .NET 應用程式? 整合 Quartz.NET 和 IronPDF 允許自動生成 PDF 並排程任務,簡化工作流程,提高 .NET 應用程式的生產力。 Jacob Mellor 立即與工程團隊聊天 首席技術官 Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。 相關文章 更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多 更新2025年12月20日 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新2025年12月20日 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 tye .NET(對於開發者的運行原理)Supersocket C# 示例(對開發...
更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多