awesome-repositories.com
Blog
MCP
awesome-repositories.com

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectServer MCPDespreCum realizăm clasamentulPresă
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
agenda avatar

agenda/agenda

0
View on GitHub↗
9,679 stele·844 fork-uri·HTML·14 vizualizăriagenda.github.io/agenda↗

Agenda

Agenda is a persistent background job scheduler and distributed task runner for Node.js applications. It functions as a cron job manager and task queue that ensures background processes survive application restarts by storing job state and metadata in a database.

The system coordinates execution across multiple worker instances using distributed locking mechanisms to prevent duplicate processing. It supports flexible scheduling via cron expressions or specific dates and includes a pluggable storage interface for backends such as MongoDB, PostgreSQL, and Redis.

The platform provides controls for job behavior, including priority and concurrency limits, job debouncing, and automated retry strategies with exponential backoff. Operational visibility is provided through a system dashboard, structured event logging, and administrative tools for managing the job lifecycle. Long-running tasks can be offloaded to separate child processes to maintain main thread responsiveness.

The project includes a REST API and a management interface protected by API key authentication and access control.

Features

  • Cron Scheduling - Core engine that translates cron expressions into a persistent database-driven queue for recurring task execution.
  • Job Schedulers - Provides flexible scheduling for tasks to run once or on a recurring basis using dates or cron expressions.
  • Atomic State Updates - Implements atomic database queries to ensure consistency and prevent race conditions across distributed workers.
  • Pluggable Storage Drivers - Offers a pluggable storage interface allowing the use of MongoDB, PostgreSQL, or Redis for job persistence.
  • State Storage Implementations - Provides a standard repository interface allowing the integration of any database to store, query, and lock jobs.
  • Distributed Locking - Prevents multiple worker instances from processing the same job simultaneously using distributed locking mechanisms.
  • Distributed Locks - Implements a distributed locking mechanism to prevent multiple worker instances from processing the same job simultaneously.
  • Distributed Task Workers - Coordinates heavy workload execution across multiple worker processes using a shared job queue.
  • Job Concurrency Controllers - Manages and limits the simultaneous execution of background tasks based on shared resource keys to optimize system usage.
  • Job Behavior Configurations - Provides a system for specifying job logic, concurrency limits, priority, and custom retry strategies.
  • Node.js Job Schedulers - Provides a comprehensive library for scheduling and executing persistent background tasks in Node.js.
  • Asynchronous Task Managers - Provides a framework for coordinating concurrent background operations and non-blocking task execution.
  • Task Coordinations - Synchronizes job execution and tracks completion across distributed nodes using shared locks.
  • Automated Retry Strategies - Implements automated retry strategies with constant, linear, or exponential backoff to handle transient errors.
  • Background Job Schedulers - A persistent background job scheduler for Node.js that executes tasks independently of the main process.
  • Persistent Background Workers - Ensures background tasks survive application restarts by persisting job state in a database.
  • Change Notification Streams - Utilizes database change streams to trigger immediate job execution without relying on periodic polling.
  • Atomic Duplicate Prevention - Prevents duplicate job processing by utilizing atomic locks and data property checks within the shared data store.
  • Database Job Lifecycle Management - Enables the ability to enable, disable, cancel, or remove jobs directly from the database using query criteria.
  • Process-Based Isolation - Offloads heavy or long-running tasks to separate child processes to isolate crashes and prevent main thread blocking.
  • Job Debouncing - Combines multiple rapid job submissions into a single execution to prevent redundant processing of frequent updates.
  • Job Event Callbacks - Triggers custom logic or captures error context, such as stack traces, via callbacks when jobs fail or complete.
  • Job Workflow Administrators - Provides a graphical interface for the full lifecycle management of jobs, including requeueing and bulk modification.
  • Manual Job Triggering - Allows triggering the immediate execution of a defined job task without altering its future cron schedule.
  • Real-Time Triggers - Uses database change streams or signals to notify workers to process queued tasks instantly, eliminating polling delays.
  • MongoDB Persistence Providers - Leverages MongoDB to persist job metadata and manage distributed locking for task execution.
  • Worker Notification Channels - Implements a pluggable notification system to trigger immediate job processing across multiple worker processes.
  • Background Task Retry Policies - Implements background task retry policies including configurable backoff intervals for failing jobs.
  • Job Process Sandboxing - Isolates job execution in separate OS processes to protect the main application from crashes and event-loop blocking.
  • Retry Policies - Provides configurable retry policies with exponential backoff to handle transient failures in background jobs.
  • Job Monitoring Tools - Ships a dashboard and utilities for inspecting the status, successes, and failures of background jobs.
  • Real-Time Monitoring Dashboards - Provides a visual dashboard for real-time monitoring of job counts, current states, and system configuration.
  • Structured Logging - Stores structured execution events in a database to provide a machine-readable audit trail of job successes and failures.
  • Worker Lifecycle Management - Provides controls for starting, stopping, and draining workers to ensure graceful shutdowns.
  • Job Queues - MongoDB-backed job scheduling library.
  • Scheduled Tasks - Lightweight job scheduling library.

Istoric stele

Graficul istoricului de stele pentru agenda/agendaGraficul istoricului de stele pentru agenda/agenda

Căutare AI

Explorează mai multe repository-uri excelente

Descrie ce ai nevoie în limbaj simplu — AI-ul sortează mii de proiecte open source selectate în funcție de relevanță.

Start searching with AI

Întrebări frecvente

Ce face agenda/agenda?

Agenda is a persistent background job scheduler and distributed task runner for Node.js applications. It functions as a cron job manager and task queue that ensures background processes survive application restarts by storing job state and metadata in a database.

Care sunt principalele funcționalități ale agenda/agenda?

Principalele funcționalități ale agenda/agenda sunt: Cron Scheduling, Job Schedulers, Atomic State Updates, Pluggable Storage Drivers, State Storage Implementations, Distributed Locking, Distributed Locks, Distributed Task Workers.

Care sunt câteva alternative open-source pentru agenda/agenda?

Alternativele open-source pentru agenda/agenda includ: taskforcesh/bullmq — BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It… optimalbits/bull — Bull is a Node.js library for managing distributed jobs and message queues using Redis as the primary data store. It… rq/rq — rq is a distributed task queue and background worker system for Python that uses a Redis backend to decouple task… resque/resque — Resque is a Ruby library for enqueueing and processing asynchronous tasks using Redis as a data store. It functions as… langchain-ai/deepagents — Deepagents is an LLM agent orchestration platform and stateful application server designed for deploying and managing… go-co-op/gocron — gocron is a task scheduling library for Go designed to automate recurring tasks using crontab expressions, fixed…

Alternative open-source pentru Agenda

Proiecte open-source similare, clasificate după numărul de funcționalități comune cu Agenda.
  • taskforcesh/bullmqAvatar taskforcesh

    taskforcesh/bullmq

    8,432Vezi pe GitHub↗

    BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence. The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream servic

    TypeScriptbackground-jobselixirnodejs
    Vezi pe GitHub↗8,432
  • optimalbits/bullAvatar OptimalBits

    OptimalBits/bull

    16,243Vezi pe GitHub↗

    Bull is a Node.js library for managing distributed jobs and message queues using Redis as the primary data store. It functions as a distributed task worker, job scheduler, and priority queue manager designed to handle asynchronous workloads across multiple processes. The project distinguishes itself by providing a persistent communication channel that decouples servers through the exchange of serializable data objects. It ensures distributed system reliability by detecting stalled tasks and recovering from process crashes to ensure every queued job is completed. The system covers a broad ran

    JavaScriptjobjob-queuemessage
    Vezi pe GitHub↗16,243
  • rq/rqAvatar rq

    rq/rq

    10,653Vezi pe GitHub↗

    rq is a distributed task queue and background worker system for Python that uses a Redis backend to decouple task submission from execution. It functions as a reliable message queue and task scheduler, allowing Python functions or asyncio coroutines to be processed asynchronously across multiple worker processes. The project distinguishes itself through reliable queuing mechanisms that prevent job loss during worker crashes using atomic operations. It provides specialized orchestration capabilities, including the prevention of duplicate jobs, job execution prioritization, and the ability to m

    Pythonasyncbackground-jobsdelayed-jobs
    Vezi pe GitHub↗10,653
  • resque/resqueAvatar resque

    resque/resque

    9,480Vezi pe GitHub↗

    Resque is a Ruby library for enqueueing and processing asynchronous tasks using Redis as a data store. It functions as a distributed task processor and queue manager, allowing long-running work to be moved out of the main request cycle. The system executes background jobs in isolated child processes to prevent memory leaks and provides a web-based dashboard for monitoring queue depths, worker activity, and failed job statistics. Capability areas include distributed worker coordination via signals, error handling with job retry mechanisms, and priority-ordered queue management. It also suppor

    Rubyasynchronous-tasksasynctaskbackground-jobs
    Vezi pe GitHub↗9,480
Vezi toate cele 30 alternative pentru Agenda→