awesome-repositories.com
المدونة
awesome-repositories.com

اكتشف أفضل مستودعات المصادر المفتوحة باستخدام بحث مدعوم بالذكاء الاصطناعي.

استكشفعمليات بحث منسقةOpen-source alternativesSelf-hosted softwareالمدونةخريطة الموقع
المشروعحولHow we rankالصحافةخادم MCP
قانونيالخصوصيةالشروط
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
riverqueue avatar

riverqueue/river

0
View on GitHub↗
5,252 نجوم·160 تفرعات·Go·MPL-2.0·4 مشاهداتriverqueue.com↗

River

River هو طابور مهام معاملات وجدول مهام موزع لـ Go يستخدم PostgreSQL للاستمرارية وإدارة الحالة. يعمل كإطار عمل للمهام القابلة للاستئناف، مما يسمح بتقسيم العمل الخلفي طويل الأمد إلى خطوات مستمرة يمكن استئنافها من آخر نقطة حفظ بعد الفشل.

يضمن النظام اتساقاً صارماً للبيانات من خلال السماح بوضع المهام الخلفية في الطابور وإكمالها ضمن نفس معاملة قاعدة البيانات مثل بيانات التطبيق الأساسية. ويتميز بنموذج منسق يستخدم انتخاب القائد لإدارة المهام الدورية والمؤجلة عبر مجموعة من عقد العمل.

تغطي المنصة مجموعة واسعة من القدرات بما في ذلك معالجة المهام غير المتزامنة، وتكوين سياسة إعادة المحاولة مع التراجع الأسي، وعزل عبء العمل من خلال طوابير مسماة. كما توفر أدوات للمراقبة عبر واجهة إدارة ويب، وقياسات التنفيذ، ونظام وسيط (middleware) لحقن الاهتمامات المتقاطعة مثل التسجيل (logging).

يمكن إدارة ترحيلات مخطط قاعدة البيانات عبر واجهة سطر الأوامر أو مباشرة من خلال الكود.

Features

  • Persistent Job Queue Libraries - Provides a reliable task processing library for Go that uses a relational database for durable state management.
  • Transactional Enqueueing - Links job insertion and completion to a database transaction to ensure strict atomicity with application data.
  • Database-Backed Deferred Queues - Uses a relational database to persist job states and metadata, ensuring atomicity and durability through database transactions.
  • Transactional Updates - Updates job status and metadata within the same database transaction as the primary business logic to ensure strict consistency.
  • Database Backend Integration - Connects to PostgreSQL backends using native or poll-only modes to store queue data.
  • Job State Persistence - Persists job output or metadata partway through a running function to enable resumption from checkpoints.
  • PostgreSQL Task Queues - Uses PostgreSQL as the primary engine for job persistence, transactional enqueuing, and state management.
  • Asynchronous Task Processing - Offloads heavy computations and external API calls to background workers to keep the main application responsive.
  • Step-Level Checkpoints - Persists task execution state after each step to allow long-running work to resume from the last checkpoint after failure.
  • Leadership Transfers - Orchestrates the transfer of the coordinator leader role between nodes in a cluster.
  • Resumable Workflow Definitions - Deno River breaks long-running tasks into persisted steps to skip completed work after a restart.
  • Distributed Job Schedulers - Implements a coordinator model with leader election to manage periodic and delayed tasks across a cluster.
  • Distributed Leader Election - Implements a coordinator model with leader election to manage periodic job triggering and prevent duplicate execution across a cluster.
  • Job Checkpointing - Saves the current step and cursor of a resumable job within a database transaction for recovery.
  • Job Queues - Implements a system for managing and routing asynchronous tasks into named queues for execution.
  • Distributed Job Schedulers with Web UI - Manages recurring tasks and delayed jobs across a cluster of workers with a coordinator model and web interface.
  • Transactional Job Completion - Marks jobs as finished within the same database transaction used for the primary business logic modifications.
  • Transactional Queues - Ensures background tasks are enqueued within the same database transaction as application data to maintain consistency.
  • Checkpoint-Based Resumptions - Provides a resumable task framework that tracks progress via checkpoints to resume long-running work after failures.
  • Multi-Step Job Tracking - Tracks progress of multi-step tasks and skips completed steps to resume execution after a failure.
  • Resumable Task Frameworks - Functions as a resumable task framework allowing long-running background work to be broken into persisted steps.
  • Task Progress Cursors - Deno River records a state or position within a step so a retry can resume from that point.
  • Transactional State Persistence - Deno River records the completion of a specific step within a database transaction to save progress.
  • JSON Persistence - Stores task arguments and execution results as JSON blobs to enable language-agnostic job processing and introspection.
  • Atomic Duplicate Prevention - Prevents duplicate jobs from being enqueued based on arguments or time windows using atomic checks.
  • Future-Time Executions - Defines specific future timestamps for tasks to be executed instead of immediate processing.
  • Queue Pause and Resume Controls - Allows temporarily stopping the processing of tasks within a specific queue until manually resumed.
  • Workload Isolation - Segregates tasks into named queues to control throughput and prevent low-priority jobs from blocking critical work.
  • Delayed Executions - Allows setting a future timestamp for a job to run, keeping it inactive until that moment.
  • Priority-Based Job Schedulers - Configures task parameters including retry limits, priority levels, and target queues.
  • Job Cancellation - Prevents a job from executing again by returning a specific cancellation error during processing.
  • Job Event Notifications - Provides real-time notifications when background jobs reach specific lifecycle states, such as successful completion.
  • Job Timeout Enforcements - Specifies the maximum duration a job can run before its context is automatically cancelled.
  • Recurring Job Scheduling - Manages recurring tasks and executes specific logic when a new cluster leader is elected.
  • Job Middleware - Wraps job execution in a sequence of functions to inject shared logic and telemetry across all tasks.
  • Exponential Backoff Retries - Calculates the delay before retrying a failed job using policies like exponential backoff.
  • Background Job Definitions - Allows specifying identifiers and arguments for units of work to ensure correct routing to workers.
  • Job Deferrals - Provides the ability to postpone background tasks for a set duration without incrementing failure counts.
  • Job Snoozing - Implements job snoozing to schedule retries after a specified duration without counting them as failed attempts.
  • Stuck Job Detection - Detects jobs that exceed time thresholds and triggers handlers to free worker slots.
  • Fixed Interval Schedulers - Deno River executes tasks on a fixed time interval and allows dynamic updates while running.
  • Functional Job Handlers - Registers background task handlers using simple functions instead of complex structures.
  • Worker Task Mapping - Maps specific job types to handler functions that execute the task logic upon dequeuing.
  • Handler Middlewares - Wraps job handlers in a chain of middleware functions to inject cross-cutting concerns like telemetry and logging.
  • Cross-Language Job Enqueueing - Allows tasks to be inserted into the queue from various programming languages to be processed by a Go worker.
  • Task Lifecycle Interceptions - Provides middleware hooks to modify job payloads before enqueuing or wrap execution logic for error handling.
  • Retry Policies - Defines when a failed job should be attempted again based on its properties or attempt count.
  • Job Execution Logging - Records the success, failure, and detailed output logs of background task executions for monitoring.
  • Execution Duration Tracking - Records the time a job spent waiting and its total execution duration to monitor performance.
  • Telemetry Exporters - Exports internal job statistics, logs, and performance metrics to third-party observability platforms.
  • Queue Management Interfaces - Ships a web interface to view, manage, and interact with the current state of jobs and queues.
  • Job - Processes errors and panics during execution to determine if a job should be retried.
  • Job Lifecycle Hooks - Defines custom logic callbacks that execute at specific stages of a job's lifecycle based on its type.
  • Job Queues - High-performance job processing system for Go.
  • General Purpose Orchestration - Postgres-backed workflow engine for background job processing in Go.

سجل النجوم

مخطط تاريخ النجوم لـ riverqueue/riverمخطط تاريخ النجوم لـ riverqueue/river

بحث بالذكاء الاصطناعي

استكشف المزيد من المستودعات الرائعة

صف ما تحتاجه بلغة بسيطة — وسيقوم الذكاء الاصطناعي بترتيب آلاف المشاريع مفتوحة المصدر المنسقة حسب الصلة.

Start searching with AI

Frequently asked questions

What does riverqueue/river do?

River هو طابور مهام معاملات وجدول مهام موزع لـ Go يستخدم PostgreSQL للاستمرارية وإدارة الحالة. يعمل كإطار عمل للمهام القابلة للاستئناف، مما يسمح بتقسيم العمل الخلفي طويل الأمد إلى خطوات مستمرة يمكن استئنافها من آخر نقطة حفظ بعد الفشل.

What are the main features of riverqueue/river?

The main features of riverqueue/river are: Persistent Job Queue Libraries, Transactional Enqueueing, Database-Backed Deferred Queues, Transactional Updates, Database Backend Integration, Job State Persistence, PostgreSQL Task Queues, Asynchronous Task Processing.

What are some open-source alternatives to riverqueue/river?

Open-source alternatives to riverqueue/river include: sorentwo/oban — Oban is a relational database-backed job processor and task scheduler for Elixir applications. It functions as a… inngest/inngest — Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background… sidekiq/sidekiq — Sidekiq is a background job processor and queue manager for Ruby that uses Redis to manage asynchronous tasks. It… queueclassic/queue_classic — Queue Classic is a background processing framework for Ruby applications that manages asynchronous tasks by utilizing… mesos/chronos — Chronos is a distributed, fault-tolerant job scheduler designed for managing containerized workloads within a cluster.… timgit/pg-boss — pg-boss is a background task scheduler and distributed task queue that uses PostgreSQL as a reliable message broker…

بدائل مفتوحة المصدر لـ River

مشاريع مفتوحة المصدر مشابهة، مرتبة حسب عدد الميزات المشتركة مع River.
  • sorentwo/obanالصورة الرمزية لـ sorentwo

    sorentwo/oban

    3,930عرض على GitHub↗

    Oban is a relational database-backed job processor and task scheduler for Elixir applications. It functions as a distributed workflow orchestrator that leverages database primitives to ensure job persistence, reliability, and consistent state management across clusters. The system distinguishes itself through complex workflow orchestration, enabling the composition of task dependencies using batching, sequential processing, and fan-out or fan-in patterns. It provides global throughput limiting and uniqueness enforcement to prevent duplicate work and protect downstream resources across distrib

    Elixir
    عرض على GitHub↗3,930
  • inngest/inngestالصورة الرمزية لـ inngest

    inngest/inngest

    5,499عرض على GitHub↗

    Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background workflows. It enables developers to build resilient, stateful processes by memoizing function steps, ensuring that long-running tasks can automatically resume from the last successful operation after failures, timeouts, or infrastructure restarts. The platform distinguishes itself through its event-driven architecture, which uses a schema-validated bus to trigger functions and coordinate complex, multi-step logic. It employs an onion-model middleware approach for cross-cutting concer

    Go
    عرض على GitHub↗5,499
  • sidekiq/sidekiqالصورة الرمزية لـ sidekiq

    sidekiq/sidekiq

    13,540عرض على GitHub↗

    Sidekiq is a background job processor and queue manager for Ruby that uses Redis to manage asynchronous tasks. It functions as a distributed task scheduler capable of handling periodic, delayed, and recurring jobs across a cluster of worker processes. The project features a job monitoring dashboard and administrative web interface for visualizing system state, tracking worker performance, and managing failed or dead jobs. It provides a distributed rate limiter to control execution frequency across multiple processes. The framework covers a broad range of operational capabilities, including j

    Rubybackground-jobsjobsruby
    عرض على GitHub↗13,540
  • queueclassic/queue_classicالصورة الرمزية لـ QueueClassic

    QueueClassic/queue_classic

    1,188عرض على GitHub↗

    Queue Classic is a background processing framework for Ruby applications that manages asynchronous tasks by utilizing relational database tables for job persistence. By storing tasks directly within the database, the system ensures that job creation remains coupled with application transactions, guaranteeing that tasks are only queued when associated data changes are successfully committed. The framework coordinates concurrent worker processes through database-level locking mechanisms, which prevent redundant execution and allow for distributed task processing without the need for an external

    Rubyactivejobqueuequeuing
    عرض على GitHub↗1,188
عرض جميع البدائل الـ 30 لـ River→