ページ内ナビ
概要
DramatiqはPython向けのdistributed task processing libraryです。Python functionをactorとして定義し、RabbitMQまたはRedis brokerへmessageを送信して、独立したworker processでbackground taskを実行します。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
Python functionをactorとして定義し、messageをworkerへ送る
@dramatiq.actorでfunctionをtaskとして登録し、.send()でbrokerへmessageをenqueueします。workerはmoduleを読み込んでactor messageを処理するため、Web applicationのrequest processから重い処理を分離できます。
出典:[2]
向いている用途
Celeryより小さなtask-processing surfaceを求めるPython backendに向く
background jobをbrokerとworkerへ分離したい一方、task queueの中心APIをactor/message/workerへ絞って扱いたいserviceに適します。RabbitMQまたはRedisを既存infraとして利用する構成とも合わせやすいです。
出典:[2]
導入前の確認
参考にした公式資料
- [1]Bogdanp/dramatiq — GitHub repository(2026-10-06)
- [2]Dramatiq 2.2.1 — README(2026-10-06)
- [3]Dramatiq 2.2.1 — setup.py(2026-10-06)
- [4]Dramatiq 2.2.1 release(2026-10-06)
- [5]Dramatiq LGPL-3.0-or-later license(2026-10-06)
編集部からの補足
actor/message/workerという小さなmental modelでbackground処理を始めやすいのが特徴です。ただしbrokerは外部componentなので、worker停止・再接続・retry・idempotencyを実環境で確認してから重要taskへ広げるのが安全です。
3ステップで試す
- 1
Dramatiq 2.2.1とRabbitMQ対応を導入する
確認対象の安定版とRabbitMQ broker依存を固定して導入します。Python 3.10以上とlocalhostのRabbitMQが必要です。
python -m pip install "dramatiq[rabbitmq]==2.2.1" - 2
最小actorを作る
公式Quickstartと同じactor/message構成で、外部HTTP accessを必要としない最小taskを作ります。
cat > example.py <<'PY' import dramatiq @dramatiq.actor def add(x, y): print(f'{x} + {y} = {x + y}') if __name__ == '__main__': add.send(2, 3) PY - 3
workerを起動してmessageを送る
workerを起動した状態で別端末からmessageをenqueueし、worker logに2 + 3 = 5が表示されることを確認します。
dramatiq example # 別端末で: python example.py
成長
成長の推移 · 直近30日
5,326 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- distributed-lock
- python
- rabbit
- redis
- task
- task-manager
- task-runner
- task-scheduler
- Stars
- 5,326
- Forks
- 384
- Watchers
- 58
- Open Issues
- 67
- Contributors
- 118
- 所有者種別
- User
- 主要言語
- Python
- ライセンス
- LGPL-3.0-or-later
- リポジトリ最終更新
- 2026/10/05
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- OpenTelemetry Python2,656 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
trace・metrics・logsを共通API/SDKで扱うPython向けOpenTelemetry実装
Python - Asynq13,748 Stars
共通タグ 2件 · 共通カテゴリ 1件
Redis-backed queueでbackground taskをretry・schedule・workerへ分散するGo library
Go - Sarama12,523 Stars
共通タグ 2件 · 共通カテゴリ 1件
Producer・Consumer Group・Admin・Transactionを幅広く扱うGo Kafka client
Go - kafka-go8,638 Stars
共通タグ 2件 · 共通カテゴリ 1件
Reader・Writerと低level Connを使い分けるpure Go Kafka client
Go - Lapin1,237 Stars
共通タグ 2件 · 共通カテゴリ 1件
RabbitMQへAMQP 0-9-1で接続するruntime非依存のasync Rust client
Rust - Dask13,932 Stars
共通タグ 2件 · 同じ言語
NumPy・pandasに近いcollectionとtask graphでparallel analyticsを拡張する
Python
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。