OSS TanbouSign in with GitHub

distribute background tasks to Redis-backed worker queues with retries and scheduling

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
13,748
Primary language
Go
License
MIT
Repository last updated
Jun 22, 2026
On this page

Overview

Asynq is a distributed task-queue library for Go. Clients enqueue tasks into Redis-backed queues and Servers process them with worker goroutines. It provides retries, scheduling, priorities, deadlines, deduplication, periodic tasks, Sentinel support, and metrics.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Separate task producers and workers through a Client/Server model

Producers enqueue task types, payloads, and options through Client, while Server and Handler implementations process tasks concurrently across multiple worker processes or machines.

Sources: [2]

Configure retries, scheduling, priorities, deduplication, and time limits as queue policy

Failed-task retries, scheduled and periodic tasks, weighted or strict priorities, unique-task deduplication, per-task timeouts and deadlines, and task aggregation are available.

Sources: [2]

Best fit

Fits background jobs such as email, media processing, and external integrations outside request paths

It is useful for Go backends that need to move expensive or retryable work off HTTP request paths and distribute it through Redis to multiple workers.

Sources: [2]

Before adoption

v0.26.0 requires Go 1.24; design for at-least-once execution and pre-v1 API changes

The v0.26.0 go.mod declares Go 1.24 and the release explicitly raises the minimum to Go 1.24. Tasks have at-least-once execution semantics, so handlers should be idempotent. Some Lua scripts may not work with Redis Cluster, and the v0 API can still change incompatibly before v1.

Sources: [3][2][4]

Official sources

  1. [1]hibiken/asynq — GitHub repository(2026-10-06)
  2. [2]Asynq v0.26.0 — README(2026-10-06)
  3. [3]Asynq v0.26.0 — go.mod(2026-10-06)
  4. [4]Asynq v0.26.0 release(2026-10-06)
  5. [5]Asynq MIT license(2026-10-06)
Supplemental curator note

Asynq separates background jobs into a Redis-backed queue with retries, scheduling, priorities, and worker concurrency. Delivery is at least once, so handlers must be designed to tolerate duplicate execution.

Try it in 3 steps

  1. 1

    Get the source

    git clone --depth 1 https://github.com/hibiken/asynq.git
  2. 2

    Enter the repository

    cd asynq
  3. 3

    Check the official steps

    Continue with the commands in the README Installation, Quick Start, or Getting Started section.

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
Check the official README

Growth

Growth trends · Last 30 days

13,748 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
0
Open PRs
73

Development activity is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • task-queue
  • go
  • background-jobs
  • redis
  • asynchronous-tasks
  • worker-pool
  • golang
Stars
13,748
Forks
988
Watchers
84
Open issues
219
Contributors
63
Owner type
User
Primary language
Go
License
MIT
Repository last updated
Jun 22, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?