lukas-krecan/shedlock

Distributed lock for your scheduled tasks

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 43 minutes ago
Added to GitGenius on September 16th, 2026
Created on December 11th, 2016
Open Issues & Pull Requests: 20 (+0)
GitHub issues: Enabled
Number of forks: 570
Total Stargazers: 4,220 (+0)
Total Subscribers: 66 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 8.5 hours
Mean response time: 14.5 days
90th percentile: 15.6 days
Tracked items: 80

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 10
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 598 days
Stale 30+ days: 10
Stale 90+ days: 10

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

ShedLock is a distributed lock library that prevents concurrent execution of scheduled tasks across multiple instances.

The problem it solves is ensuring that when you run the same scheduled task on multiple application instances, only one instance executes it at a time. This is essential in distributed systems where you might have several servers running identical job schedulers. ShedLock works by acquiring a lock before task execution and releasing it afterward, using a shared data store as the coordination mechanism. The lock is held only for the duration of the task execution, allowing other instances to run the same task on subsequent schedules.

Teams running scheduled tasks in clustered or multi-instance deployments should consider ShedLock. It suits any project where you cannot afford duplicate task execution—such as batch jobs, data synchronization routines, or maintenance tasks that modify shared state. The tool integrates with common Java scheduling frameworks and requires minimal code changes: you annotate your scheduled methods and configure a lock provider that points to your shared data store. It is particularly valuable when you want to avoid the complexity of redesigning your tasks to be idempotent or when you need a lightweight alternative to building custom locking logic.

The project maintains a steady stream of updates addressing bug fixes and compatibility improvements. Contributions are reviewed and merged regularly, indicating active maintenance. The codebase shows responsiveness to reported issues, with fixes appearing in subsequent releases. Development activity reflects a pragmatic focus on stability and compatibility rather than rapid feature expansion.