Quartz.NET Redis integration - distributed lock handler for clustered scheduling; Quartz Scheduling Framework for .NET
Install
| Product | Versions |
|---|---|
| .NET | |
| .NET Standard | |
| Other |
README
Quartz.Extensions.Redis
Quartz.Extensions.Redis provides a Redis-based distributed lock handler that replaces database row locks in clustered Quartz.NET setups.
Note: Quartz 3.18 or later required. Useful when the default database row locks cause deadlocks or contention on the
QRTZ_LOCKStable under heavy scheduling load.
Installation
dotnet add package Quartz.Extensions.Redis
Usage
Job and trigger data stays in your relational database; only the locks move to Redis (SET NX PX):
var schedulerFactory = SchedulerBuilder.Create()
.UsePersistentStore(store =>
{
store.UseSqlServer(connectionString);
store.UseSystemTextJsonSerializer();
store.UseClustering();
store.UseRedisLockHandler(redis =>
{
redis.RedisConfiguration = "redis-server:6379";
});
})
.Build();
| Property | Default | Description |
|---|---|---|
redisConfiguration |
localhost:6379 |
StackExchange.Redis connection string |
keyPrefix |
quartz:lock: |
Prefix for Redis lock keys |
lockTtlMilliseconds |
30000 |
Lock TTL (auto-expires after this duration) |
lockRetryIntervalMilliseconds |
100 |
Polling interval between SET NX retries |
Documentation
đź“– Full documentation, including property-based configuration and design details: https://www.quartz-scheduler.net/documentation/quartz-3.x/packages/redis.html
Changes from Previous Version
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.