Celery (ソフトウェア)
表示
作者 | Ask Solem Hoel |
---|---|
最新版 |
5.3.4
/ 2023年9月3日 |
リポジトリ | |
プログラミング 言語 | Python |
プラットフォーム | クロスプラットフォーム |
対応言語 | Python |
種別 | メッセージ指向ミドルウェア |
ライセンス | BSD License |
公式サイト |
docs |
Celeryは、分散メッセージパッシングをベースとしたオープンソースの非同期タスクキューまたはジョブキューである。スケジューリングもサポートしているが、リアルタイムでのオペレーションに重点を置いている[1]。
概要
[編集]「Tasks」と呼ばれる実行ユニットは、マルチプロセッシング、eventlet[2]、またはgevent[3]を使用して1つ以上のワーカーノード上で同時に実行される。Tasksは非同期(バックグラウンドで)に実行することも、同期的に(終了を待つように)実行することもできる。Celeryは、Instagramなどの本番システムで利用されており、1日に数百万のTasksを処理できる[1]。
技術
[編集]CeleryはPythonで書かれているが、プロトコルは任意の言語で実装でき、Webhookを使用して他の言語でも操作できる[4]。また、RubyクライアントRCelery[5]、PHPクライアント[6]、Goクライアント[7]、Rustクライアント[8]、Node.jsクライアント[9]などがある。
Celeryを実行するにはメッセージブローカーが必要となる。2024年10月の時点で、RedisとRabbitMQが活発にメンテナンス、監視されている。Amazon SQSも対応とメンテナンスが行われているが、worker inspectionとランタイム時の管理には対応していない。ZookeeperとKafkaは現在実験的な開発段階にある[10]。
出典
[編集]- ^ a b “Celery: Distributed Task Queue”. 2019年6月13日時点のオリジナルよりアーカイブ。2016年1月14日閲覧。
- ^ “Eventlet Networking Library”. eventlet.net. 2022年9月21日閲覧。
- ^ “What is gevent? — gevent 21.12.1.dev0 documentation”. gevent.org. 2022年9月21日閲覧。
- ^ “HTTP Callback Tasks (Webhooks) — Celery 3.1.23 documentation”. docs.celeryproject.org. 2016年10月30日時点のオリジナルよりアーカイブ。2016年8月17日閲覧。
- ^ “leapfrogonline/rcelery”. GitHub. 2016年8月17日閲覧。[リンク切れ]
- ^ “gjedeer/celery-php”. GitHub. 2016年8月17日閲覧。
- ^ “gocelery/gocelery”. GitHub. 2018年8月6日閲覧。
- ^ rusty-celery/rusty-celery, Rusty Celery, (2022-10-09) 2022年10月9日閲覧。
- ^ “mher/node-celery”. GitHub. 2016年8月17日閲覧。
- ^ “Backends and Brokers — Celery 5.2.7 documentation”. docs.celeryproject.org. 2022年6月23日時点のオリジナルよりアーカイブ。2022年6月23日閲覧。