OSS探訪GitHubでログイン

Redis-backed queueでbackground taskをretry・schedule・workerへ分散するGo library

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
13,748
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/06/22
ページ内ナビ

概要

AsynqはGo向けのdistributed task queue libraryです。ClientがRedis-backed queueへtaskをenqueueし、Serverがworker goroutineで処理します。retry、schedule、priority、timeout/deadline、deduplication、periodic task、Sentinel、metrics等を提供します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Client/Server modelでtask enqueueとworker処理を分離する

producer側はClientからtask type・payload・optionをqueueへ投入し、worker側はServerとHandlerでtaskを並列処理できます。複数worker serverへ分散してhorizontal scaleできます。

出典:[2]

retry・schedule・priority・deduplication・timeoutをqueue policyとして設定する

失敗taskのretry、scheduled/periodic task、weighted/strict priority、unique optionによるdeduplication、task単位のtimeout/deadline、group aggregation等を利用できます。

出典:[2]

向いている用途

email・image処理・外部API連携などrequest path外のbackground jobに向く

HTTP requestから重い処理を切り離し、Redisをbrokerとして複数workerへ配布したいGo backendやbatch-oriented serviceに適します。

出典:[2]

導入前の確認

v0.26.0はGo 1.24。at-least-once実行とv0 API changeを前提に設計する

v0.26.0のgo.modはGo 1.24を指定し、releaseでもminimum Go 1.24への更新が明記されています。taskはat-least-once実行のためhandlerをidempotentにし、Redis Clusterでは一部Lua scriptの非互換性にも注意してください。major versionは0で、v1前はbreaking API changeが起こり得ます。

出典:[3][2][4]

参考にした公式資料

  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)
編集部からの補足

background jobをRedis-backed queueへ分離し、retry・schedule・priority・worker concurrencyをまとめて扱えます。deliveryはat-least-onceなので、handlerはduplicate実行を前提にidempotentへ設計する必要があります。

3ステップで試す

  1. 1

    ソースを取得

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

    リポジトリへ移動

    cd asynq
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

13,748 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
73

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

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
所有者種別
User
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/06/22

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?
Asynq v0.26.0とは?Go向けRedis Task Queue | OSS探訪