CojectCore.BackgroundServices
1.0.5
See the version list below for details.
dotnet add package CojectCore.BackgroundServices --version 1.0.5
NuGet\Install-Package CojectCore.BackgroundServices -Version 1.0.5
<PackageReference Include="CojectCore.BackgroundServices" Version="1.0.5" />
<PackageVersion Include="CojectCore.BackgroundServices" Version="1.0.5" />
<PackageReference Include="CojectCore.BackgroundServices" />
paket add CojectCore.BackgroundServices --version 1.0.5
#r "nuget: CojectCore.BackgroundServices, 1.0.5"
#:package CojectCore.BackgroundServices@1.0.5
#addin nuget:?package=CojectCore.BackgroundServices&version=1.0.5
#tool nuget:?package=CojectCore.BackgroundServices&version=1.0.5
Copyright (c) 2024 Akwad Arabia
CojectCore.BackgroundServices
A lightweight and easy-to-use background service library for ASP.NET Core applications. Manage SMS, Email, and custom background tasks with simple configuration.
Features
✅ Easy Integration - One line of code to enable background services
✅ Configurable - Enable/disable services via appsettings.json
✅ Extensible - Add custom background tasks easily
✅ Logging Support - Built-in logging for all operations
✅ Scoped Services - Proper dependency injection with scoped lifetimes
Installation
dotnet add package Coject.BackgroundServices
Or via NuGet Package Manager:
Install-Package Coject.BackgroundServices
Quick Start
1. Install the package
dotnet add package Coject.BackgroundServices
2. Configure appsettings.json
{
"BackgroundService": {
"EnabledServices": ["ServiceSMS", "ServiceMail"],
"IntervalSeconds": 10
}
}
3. Register in Program.cs
using Coject.BackgroundServices.Extensions;
var builder = WebApplication.CreateBuilder(args);
// Register your core dependencies
builder.Services.AddScoped<CoreModuleDB>();
builder.Services.AddScoped<ApiContext>();
// Add background services with one line
builder.Services.AddCojectBackgroundServices(builder.Configuration);
var app = builder.Build();
app.Run();
4. Done! 🎉
Your background services will start automatically and run based on the configured interval.
Configuration
appsettings.json
| Property | Type | Description | Default |
|---|---|---|---|
EnabledServices |
string[] |
Array of service names to enable | [] |
IntervalSeconds |
int |
Interval between executions in seconds | 60 |
Available Services
ServiceSMS- SMS message processingServiceMail- Email message processing
Examples
Run every 10 seconds:
{
"BackgroundService": {
"EnabledServices": ["ServiceSMS", "ServiceMail"],
"IntervalSeconds": 10
}
}
Enable only SMS:
{
"BackgroundService": {
"EnabledServices": ["ServiceSMS"],
"IntervalSeconds": 30
}
}
Disable all services:
{
"BackgroundService": {
"EnabledServices": [],
"IntervalSeconds": 60
}
}
Adding Custom Background Tasks
1. Create your task class
using Coject.BackgroundServices.Interfaces;
public class CustomBackgroundTask : IBackgroundTask
{
private readonly ILogger<CustomBackgroundTask> _logger;
public string ServiceName => "ServiceCustom";
public CustomBackgroundTask(ILogger<CustomBackgroundTask> logger)
{
_logger = logger;
}
public async Task ExecuteAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("Custom task executing...");
// Your logic here
}
}
2. Register it
builder.Services.AddCojectBackgroundServices(builder.Configuration);
builder.Services.AddBackgroundTask<CustomBackgroundTask>();
3. Enable in appsettings.json
{
"BackgroundService": {
"EnabledServices": ["ServiceSMS", "ServiceMail", "ServiceCustom"],
"IntervalSeconds": 10
}
}
Requirements
- .NET 6.0 or higher
- ASP.NET Core
Dependencies
Your main project must register these dependencies before calling AddCojectBackgroundServices():
builder.Services.AddScoped<CoreModuleDB>();
builder.Services.AddScoped<ApiContext>();
Logging
The package uses ILogger for all logging. Configure your logging in appsettings.json:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Coject.BackgroundServices": "Debug"
}
}
}
License
MIT License - see LICENSE.txt for details
Support
For issues, questions, or contributions, please visit:
- GitHub: [Your GitHub URL]
- NuGet: https://www.nuget.org/packages/Coject.BackgroundServices
Changelog
Version 1.0.0
- Initial release
- SMS background service
- Email background service
- Configurable intervals
- Enable/disable services via configuration
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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 was computed. 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. |
-
net8.0
- Coject.Core.Controller (>= 1.1.4)
- CojectCore.Providers.SMS (>= 1.0.6)
- Microsoft.Extensions.Http (>= 8.0.1)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.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.
Initial release with SMS and Email background services support.