ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
.NETアプリケーション向けには、Quartz.NETは人気のあるオープンソースのタスクリスケジューリングツールキットです。 それはプログラマーに、所定の時刻、間隔、またはトリガーに応じて、ジョブ、スケジュール、またはプロセスを計画および実行するための強固な基盤を提供します。 Quartz.NETは、通知の配信、ジョブのスケジューリング、レポートの生成、または定期的なメンテナンス活動の実行など、.NETアプリケーションで複雑なスケジュールシナリオを構築するのを容易にします。 Quartz.NETは、小規模アプリケーションから大規模エンタープライズシステムの作成まで、ジョブスケジューリングシステムとして最適です。
Quartz.NETの最新バージョンのスケジューラは、さまざまなサポートされているデータベースプロバイダーとのシームレスな統合を提供し、便利な拡張メソッドを使用してその機能を拡張することを可能にし、ホスト型サービスとして信頼性のあるタスク実行を確保します。
.NETアプリケーションで信頼性の高いスケジューリングシステムを構築し、強力なPDF生成機能を実現するには、Quartz.NETとIronPDFを統合することが可能です。 IronPDFはPDFドキュメントの作成、変更、および表示のためのフルスイートツールを提供していますが、Quartz.NETは柔軟で信頼性の高いスケジューリングシステムを提供します。 組み合わせることで、開発者はワークフローの一環としてPDF作成操作を自動化したり、バックグラウンドジョブをスケジュールしたりすることができ、アプリの有用性と機能性を向上させることができます。
Quartz.NETは、プログラマーがプログラムをあらかじめ設定した間隔や時間に実行するスケジュールを作成できるようにします。(例: 毎時、毎日、30分ごと). コロン表現などの複雑なスケジュールパターンに対応しており、コード、ジョブ、およびサービスの実行時間を正確に制御できます。
Quartz.NETでは、ジョブはさまざまなトリガーによって開始できます。 カレンダーに基づくトリガーが含まれます(例えば、週末を除外する)シンプルトリガー(決められたスケジュールに従って動作します), ジョブトリガー、および外部の状況や発生事象に依存するカスタムトリガー。
Quartz.NETは、ジョブを永続的にスケジュールする機能を備えており、計画されたタスクとその完了履歴をデータベースに保存することができます。 アプリケーションの障害や再起動に対するジョブスケジュールのレジリエンスが保証されており、高可用性およびスケーラビリティのためのジョブクラスタリングが可能です。
タスクが安全かつ効果的に完了することを保証するために、Quartz.NETには組み込みの並行性制御ツールが備わっています。 ジョブの実行の並行性を制御するために、開発者はスレッドプール、ジョブの優先順位、実行制約を設定することができます。
ジョブは指定された順序で実行でき、Quartz.NETのジョブチェイニングと依存関係管理のサポートにより、開発者によってジョブ間の関係を定義することができます。 これにより、バックグラウンドジョブ、サービス、および手続きのための複雑なオーケストレーション状況を作成することが可能になります。
フェイルオーバーを優雅に管理するために、Quartz.NETにはエラーハンドリングとリトライ技術があります。 一時的な失敗や例外が発生した場合、開発者はリトライポリシーとエラーハンドリング技術を設定して、ジョブが再試行または再スケジュールされることを保証できます。
Quartz.NET は分散ジョブスケジューリングにおけるクラスタリングをサポートしているため、スケジューラの複数のインスタンスがサーバークラスター全体でタスクを調整および実行することができます。 これは、水平スケーラビリティおよびフォールトトレランスを可能にすることによって、分散コンテキストで信頼性のあるジョブスケジューラと実行を保証します。
Quartz.NET は、メッセージング システムを含む .NET エコシステムと簡単にインターフェースできるようになっています。(Rebus.NET, MassTransit)ログフレームワーク(Serilog、NLog)および一般的な依存性注入フレームワーク(Autofac、Microsoft.Extensions.DependencyInjection).
実行したいタスクに対して、ジョブとトリガーを設定します。 タスクの完了は、コンテキストオブジェクトとジョブクラスによって表され、ジョブの実行頻度とタイミングはトリガーによって決定されます。
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()
指定された構成でジョブスケジューラを設定してバックグラウンドタスク、ジョブ、およびトリガーをスケジュールした後、スケジューラを起動してジョブの計画および実行を開始します。
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)
Quartz.NETを設定して、ジョブとトリガーのメタデータをデータベースのような永続ストアに保存します。 これは信頼性を保証し、ジョブがアプリケーションの再起動時にも生き残ることを可能にします。
ジョブ実行ロジックにエラーハンドリングと再試行ロジックを組み込んで、失敗を丁寧に扱うようにしましょう。 Quartz.NETは、例外の管理およびタスクの再試行のための組み込みメソッドを提供します。
分散環境でQuartz.NETを使用する際の高可用性とスケーラビリティを保証するためには、クラスタリングを設定してください。 スケジューラーインスタンスは、クラスタリングのおかげでサーバのクラスタ間でタスクを協力して実行することができます。
Quartz.NET を設定して依存性注入と連携する(DI)依存性注入フレームワークを使用するアプリケーションの場合、ジョブの依存関係、構成、およびライフサイクルを管理するためのコンテナ。
IronPDFは、.NETおよびJava、Python、Node.jsでPDFを生成、編集、読み取るための強力なツールです。プログラマー向けに最適化されており、コードからPDFファイルの作成を容易に行うことができます。IronPDFは、HTML、CSS、JavaScript、および画像をPDFドキュメントに変換する能力を提供します。
IronPDFは様々なライセンスオプションがあり、Lite License、Plus License、Professional License、Unlimited Licenseが用意されています。
技術サポートや詳細については、Iron Softwareの公式サイトをご覧ください。
.NETプログラム内でPDFドキュメントの作成、修正、およびレンダリングを行うことは、よく知られた.NETパッケージであるIronPDFによって可能になります。 PDFとのやり取りに利用できる多彩な機能が用意されています:HTMLコンテンツ、写真、または未処理データからPDFを作成すること; 既存のPDFドキュメントにテキスト、画像、および図形を追加すること; HTMLページをPDFに変換する。 PDFからテキストや画像を抽出する。
IronPDFのシンプルさとユーザーフレンドリーさは、その主な利点の2つです。 開発者は、使いやすいAPIと充実したドキュメントを使用することで、.NETプロジェクトで簡単にPDFを生成し始めることができます。 IronPDFの速度と効率性は、開発者が高品質のPDFドキュメントを迅速かつ効果的に作成できるようにするさらなる特徴です。
Quartz.NETと共にIronPDFを使用し始めるには、コンソールまたはASP.NET Coreアプリケーションで、IronPDFを使用してPDF制作に関連するタスクを実行するためのスケジュールされたバックグラウンドジョブを確立することができます。
まず、Visual Studioパッケージマネージャコンソールで以下のコマンドを使用して、.NETプロジェクトに必要なNuGetパッケージであるIronPDFおよびQuartz.NETをインストールしていることを確認してください:
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
このセクションでは、IronPDFを使用してPDFドキュメントを作成するQuartzジョブを作成する方法を示します。
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
Quartz.NETを設定して、事前に決められたスケジュールでPDF作成プロセスを実行するトリガーを利用します。
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)
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
' Start the scheduler
Await scheduler.Start()
' Optionally, monitor scheduler for job execution
以下は上記のコードから生成された出力です。
まとめると、Quartz.NET と IronPDF の組み合わせは、.NET アプリケーションで PDF 作成に関連する操作を自動化する強力な方法を提供します。 Quartz.NETの強力で適応可能なスケジューリングシステムの助けを借りて、開発者は所定の間隔または期間でタスクを実行するジョブとトリガーを作成することができます。 一方、IronPDFは、開発者がPDFドキュメントを作成および操作するために必要なすべてのツールを提供します。 HTML、グラフィックス、または生データを使用して、開発者はプロフェッショナルな外観のPDFを作成することができます。
開発者は、IronPDF の PDF 生成機能を Quartz.NET のスケジューリング機能と統合することによって、レポート、請求書、ドキュメントの作成など、分散アプリケーションにおける一般的な PDF 生成操作を、予め設定された間隔やトリガーに反応して自動化することができます。 この統合により、開発者はドキュメント生成のワークフローを合理化し、生産性を向上させ、手作業を削減することで、顧客やクライアントに高品質なPDFドキュメントをより簡単に生成および送信できます。
IronPDFは手頃な価格で、パッケージの一部として購入すると終身ライセンスが付いてきます。 パッケージの価格はわずか$749であり、これは複数のシステムに対する単一の料金であるため、優れた価値を提供します。 ライセンス保持者には、24時間対応のオンラインエンジニアリングサポートを提供します。 Iron Softwareの製品については、Iron Softwareの製品ページをご覧ください。Iron Software ウェブサイト.
9つの .NET API製品 オフィス文書用