Back to Projects

JobRunner

A community project shared on GitHub Discussions by ugmurthy

ugmurthy

ugmurthy

Project Author

0 comments
0 upvotes

Project Description

JobRunner is backend built using KiloCode and based on bullMQ

JobRunner is a powerful, modular, and extensible system for job queue management, designed for reliability, scalability, and an excellent developer experience. It includes a robust backend service, a dynamic job handler system, and a modern web-based client for managing jobs and schedules.

Backend Service
The JobRunner backend is a Node.js/TypeScript service for handling asynchronous job processing. It offers a comprehensive API for job submission, monitoring, and management, with real-time updates via WebSockets and a visual dashboard for queue monitoring.

Key Features

  • Modular Architecture: Clean separation of concerns for improved maintainability.
  • RESTful API: Comprehensive endpoints for job, webhook, and API key management.
  • Dual Authentication: Secure access with both JWT and API Key authentication.
  • Reliable Job Processing: Utilizes BullMQ for robust job queue management.
  • Flexible Job Scheduling: Supports cron expressions and repeat intervals.
  • Real-time Updates: WebSocket support for instant updates on job progress.
  • Visual Dashboard: Integrated Bull Board UI for at-a-glance queue monitoring.
  • Type Safety: Fully implemented in TypeScript for a more stable codebase.
  • Job Flows: Define and manage complex, multi-step job workflows.

➡️ Learn more about the backend service in the README-job-backend.md

Job Handler System
The job handler system provides a modular and extensible way to process tasks. It dynamically discovers and loads job handlers at runtime, supports hot reloading for seamless updates, and can be extended with a powerful plugin system.

Key Features

  • Dynamic Handler Registration: Handlers are automatically discovered and loaded.
  • Hot Reloading: Update job handlers without restarting the worker.
  • Extensible with Plugins: Add new functionality through npm packages.
  • Multi-Queue Support: Process jobs from multiple queues with different configurations.
  • Centralized Configuration: Easily enable, disable, and configure handlers.

➡️ Learn more about the job handler system in the job-handlers/README-job-handlers.md

Jobs Client (Frontend)
The Jobs Client is a modern, responsive web interface for interacting with the JobRunner backend. It provides a user-friendly way to manage jobs, view scheduled tasks, and monitor the system.

Key Features

  • Comprehensive Job Management: Browse, view details, and submit jobs with ease.
  • Real-time Status Monitoring: Live updates on job status.
  • Advanced Scheduler: Manage scheduled jobs with support for cron expressions, intervals, and one-time execution.
  • Secure Authentication: Supports both user login and API key authentication.
  • Modern UI/UX: Includes a responsive design, dark/light modes, and toast notifications.

➡️ Learn more about the jobs client in the jobs-client/README-jobs-clients.md

Continue the conversation

This project was originally shared as a GitHub Discussion. Join the conversation, ask questions, or share your own implementation.

View Discussion on GitHub