Shaunebu.Bussiness.ReportGenerator.Scheduler
1.0.0
dotnet add package Shaunebu.Bussiness.ReportGenerator.Scheduler --version 1.0.0
NuGet\Install-Package Shaunebu.Bussiness.ReportGenerator.Scheduler -Version 1.0.0
<PackageReference Include="Shaunebu.Bussiness.ReportGenerator.Scheduler" Version="1.0.0" />
<PackageVersion Include="Shaunebu.Bussiness.ReportGenerator.Scheduler" Version="1.0.0" />
<PackageReference Include="Shaunebu.Bussiness.ReportGenerator.Scheduler" />
paket add Shaunebu.Bussiness.ReportGenerator.Scheduler --version 1.0.0
#r "nuget: Shaunebu.Bussiness.ReportGenerator.Scheduler, 1.0.0"
#:package Shaunebu.Bussiness.ReportGenerator.Scheduler@1.0.0
#addin nuget:?package=Shaunebu.Bussiness.ReportGenerator.Scheduler&version=1.0.0
#tool nuget:?package=Shaunebu.Bussiness.ReportGenerator.Scheduler&version=1.0.0
Shaunebu.Bussiness.ReportGenerator.Scheduler
Automate report generation with Cron expressions & background scheduling
This package enables automatic report execution using:
โฐ Cron expressions (
0 9 * * *)๐ Interval recurrence
๐ Manual triggers
๐ง Persistent scheduler registry
๐งฉ Full integration with
Shaunebu.Bussiness.ReportGenerator
It works seamlessly inside:
ASP.NET Core
Worker Services
Console apps
Background services
๐ Features
โฐ Flexible Scheduling
Cron-based (
0 0 * * MON-FRI)Fixed intervals (
Every 15 minutes)Daily/weekly/monthly jobs
Tenant-aware execution
๐งฉ Report Pipeline Integration
You can schedule:
PDF reports
HTML, Word, Excel, Markdown
Any DataSource
Any Exporter (email, cloud, REST)
๐ Register Jobs at Startup
services.AddShaunebuScheduler();
๐ง Configuration (Optional)
Add in appsettings.json:
{
"ReportScheduler": {
"Jobs": [
{
"ReportId": "DailyInvoice",
"Cron": "0 8 * * *",
"Tenant": "contoso"
}
]
}
}
๐ฅ Installation
dotnet add package Shaunebu.Bussiness.ReportGenerator.Scheduler
๐งช Example โ Schedule a Daily Report
var scheduler = provider.GetRequiredService<IReportSchedulerService>();
await scheduler.ScheduleReportAsync(
reportId: "DailyInvoiceReport",
cronExpression: "0 9 * * *"
);
๐ Trigger Manually
await scheduler.TriggerNowAsync("DailyInvoiceReport");
๐๏ธ List All Scheduled Jobs
foreach (var job in scheduler.GetScheduledReports())
{
Console.WriteLine($"{job.ReportId} โ {job.CronExpression} | Next: {job.NextRun}");
}
๐ Example: Interval Schedule (Every 10 minutes)
await scheduler.ScheduleIntervalAsync("QuickSales", TimeSpan.FromMinutes(10));
๐ Secure & Tenant-Aware
Jobs can target a tenant:
await scheduler.ScheduleReportAsync(
"TenantAReport",
"0 */2 * * *",
tenantId: "tenant-a"
);
๐ง How It Works
The scheduler:
Loads registered jobs
Evaluates cron expressions
Fires the ReportBuilder pipeline
Logs audit & telemetry automatically
Supports concurrent executions
Handles failures & retries
๐ก Typical Use Cases
Daily invoice reports
HR weekly summaries
Automated Excel data exports
REST/webhook reports
Monthly financial PDFs
Daily cloud backups of data snapshots
๐งฉ Integration with ReportGenerator
var result = await factory.Create()
.WithName("DailySales")
.FromSql("SELECT * FROM Sales WHERE Date = Today")
.ToPdf()
.ExportAsync();
Then schedule it:
await scheduler.ScheduleReportAsync("DailySales", "0 7 * * *");
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Shaunebu.Bussiness.ReportGenerator (>= 1.0.0)
- Shaunebu.Common.Scheduler (>= 1.0.0)
-
net9.0
- Shaunebu.Bussiness.ReportGenerator (>= 1.0.0)
- Shaunebu.Common.Scheduler (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 320 | 11/13/2025 |