A lightweight Java scheduler library with advanced features like cron support, job statistics, and long-running job detection.
Wisp is a Java library for scheduling and managing recurring jobs with a minimal footprint and straightforward API. It extends Java's built-in scheduling capabilities with features like cron expression support, job execution statistics, and long-running job detection. The library is designed to be lightweight, efficient, and easy to integrate into Java applications.
Java developers building applications that require scheduled tasks, such as background job processing, periodic data updates, or maintenance routines. It's suitable for projects where a simple, dependency-light scheduler is preferred over heavier enterprise solutions.
Developers choose Wisp for its balance of advanced scheduling features and minimal overhead. Unlike heavier alternatives, it offers cron support, job monitoring, and configurable thread pools while maintaining a tiny footprint and zero dependencies beyond SLF4J.
A simple Java Scheduler library with a minimal footprint and a straightforward API
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Weighs only 30KB with zero dependencies except SLF4J, making integration lightweight and avoiding bloat, as highlighted in the README.
Supports cron expressions via an optional lightweight library, plus fixed delay, fixed frequency, and daily execution times, offering more versatility than Java's ScheduledThreadPoolExecutor.
Includes a LongRunningJobMonitor to log warnings when jobs exceed configurable duration thresholds, aiding in debugging and performance tuning.
Allows setting min/max threads and keep-alive times for idle threads, enabling resource optimization and scalable concurrency management.
Cron expression support requires adding an external library (ch.eitchnet/cron), adding complexity for teams wanting built-in cron scheduling without extra dependencies.
Job schedules and states are stored in memory and lost on JVM restart, making it unsuitable for fault-tolerant systems that require job recovery.
Job execution can be delayed by up to 1ms due to system load, as noted in the README, which may not meet high-precision scheduling needs.