ページ内ナビ
概要
CeleryはPython向けの分散task queueです。producerがbrokerへtask messageを送り、複数workerが非同期に処理します。RabbitMQ、Redis、Amazon SQSなどのtransport、複数のconcurrency pool、result backend、schedulerなどを組み合わせてbackground jobを運用できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
broker経由でtaskをworkerへ配送し、処理系をapplicationから分離する
Celery applicationへtaskを登録し、RabbitMQ・Redis・Amazon SQS・Google Pub/Sub等のmessage transportを介してworkerへ配送します。worker/clientは接続障害時のretry機構を持ち、複数workerへ処理を分散できます。
出典:[2]
concurrency・result backend・schedulerをworkloadに合わせて選ぶ
prefork、Eventlet、gevent、solo等のconcurrency方式を選択でき、Redis、SQLAlchemy、Django ORM、Elasticsearch等をresult storeとして構成できます。定期taskはschedulerと組み合わせて実行できます。
出典:[2]
向いている用途
Web requestから重い処理を切り離すPython backendに向く
email送信、image処理、外部API連携、batch処理などをrequest/responseから切り離し、retry・queueing・worker scaleを別processとして管理したいserviceに適します。
出典:[2]
導入前の確認
参考にした公式資料
- [1]celery/celery — GitHub repository(2026-10-06)
- [2]Celery 5.6.3 — README(2026-10-06)
- [3]Celery 5.6.3 — setup.py(2026-10-06)
- [4]Celery 5.6.3 release(2026-10-06)
- [5]Celery BSD-3-Clause license(2026-10-06)
編集部からの補足
background taskの実装だけでなく、broker・result backend・worker processの運用まで含めて一つのsystemとして設計する必要があります。小さなqueueから始め、retry/ack/idempotencyとworker停止時の挙動を先に確認すると導入しやすくなります。
3ステップで試す
- 1
Celery 5.6.3を導入する
確認対象の安定版を固定して導入します。Python 3.9以上と、localhostで利用できるRabbitMQが必要です。
python -m pip install "celery==5.6.3" - 2
最小task applicationを作る
公式READMEの最小applicationに沿って、RabbitMQ brokerへtaskを送れるmoduleを作ります。
cat > tasks.py <<'PY' from celery import Celery app = Celery('hello', broker='amqp://guest@localhost//') @app.task def hello(): return 'hello world' PY - 3
workerを起動してtaskをenqueueする
一方の端末でworkerを起動し、別端末からtaskを送信します。worker logでtaskが受信・実行されることを確認します。
celery -A tasks worker --loglevel=INFO # 別端末で: python -c "from tasks import hello; print(hello.delay())"
成長
成長の推移 · 直近30日
28,936 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- amqp
- python
- python-library
- python3
- queue-tasks
- queue-workers
- queued-jobs
- redis
- redis-queue
- sqs
- sqs-queue
- task-manager
- Stars
- 28,936
- Forks
- 5,205
- Watchers
- 450
- Open Issues
- 737
- Contributors
- 401
- 所有者種別
- Organization
- 主要言語
- Python
- ライセンス
- BSD-3-Clause
- リポジトリ最終更新
- 2026/10/05
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- 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 - TensorFlow200,710 Stars
共通タグ 2件
2.21.0でPython要件と周辺依存が変わった機械学習基盤
C++
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。