Introduction
What is The Scheduler
Section titled “What is ”The scheduler is a Task Manager where you write your own tasks in Typescript/Javascript. Based on a typed class component users can write their own processes, using any extra packages, libraries, and extra tools they want, all while being able to schedule these tasks to run on a specific time.
In a nutshell, The scheduler is an expanded CRON job manager.
What does The Scheduler focus on
Section titled “What does focus on”- The Scheduler focuses on ease of configuration and user coded interactions, like on task start and end, logging and error handling.
- We also focuses on a clear structure for the task code base ( a class base ), and the ability to compose extra ready to use plugins and services to attach and use in your task.
- We also have a “good” UI that is focused on keyboard accessibility and ease of navigation and search (more to come on this).
- Our deployment process comes with the most amount of default configs, and a minimal number of services/containers needed to start.
Features
Section titled “Features”Fully implemented features
Section titled “Fully implemented features”- Full typed task creation: with full types exported on build time
- Lifecycle job events: Integrates multiple life cycle events for tasks (aka jobs)
- Baked-in logging: Supports multiple logging targets (files, Loki, Gotify notifications**), per job/run logs
- Baked-in notification plugins: Supports custom Notification services based on user coded
- Basic auth support: Supports authentication (JWT in API + UI)
- Baked-in http clients: Includes built in networking tools for jobs to use (axios, browserless**)
- Documented API: Has an easy to comprehend API + heavily tied UI (demo available)
- Written with Bun as a runtime for faster execution, and Elysia as the server/API framework
partially or in progress features
Section titled “partially or in progress features”- Support fo automatic job result parsing and classifications (errors, warnings, …)
- Support for networking and IO tools per task
- Support for custom UI themes
- Support for custom UI keyboard shortcuts