コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

Celery (ソフトウェア)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Celery
作者 Ask Solem Hoel
最新版
5.3.4 / 2023年9月3日 (16か月前) (2023-09-03)
リポジトリ ウィキデータを編集
プログラミング
言語
Python
プラットフォーム クロスプラットフォーム
対応言語 Python
種別 メッセージ指向ミドルウェア
ライセンス BSD License
公式サイト docs.celeryq.dev
テンプレートを表示

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]

出典

[編集]
  1. ^ a b Celery: Distributed Task Queue”. 2019年6月13日時点のオリジナルよりアーカイブ。2016年1月14日閲覧。
  2. ^ Eventlet Networking Library”. eventlet.net. 2022年9月21日閲覧。
  3. ^ What is gevent? — gevent 21.12.1.dev0 documentation”. gevent.org. 2022年9月21日閲覧。
  4. ^ HTTP Callback Tasks (Webhooks) — Celery 3.1.23 documentation”. docs.celeryproject.org. 2016年10月30日時点のオリジナルよりアーカイブ。2016年8月17日閲覧。
  5. ^ leapfrogonline/rcelery”. GitHub. 2016年8月17日閲覧。[リンク切れ]
  6. ^ gjedeer/celery-php”. GitHub. 2016年8月17日閲覧。
  7. ^ gocelery/gocelery”. GitHub. 2018年8月6日閲覧。
  8. ^ rusty-celery/rusty-celery, Rusty Celery, (2022-10-09), https://github.com/rusty-celery/rusty-celery 2022年10月9日閲覧。 
  9. ^ mher/node-celery”. GitHub. 2016年8月17日閲覧。
  10. ^ Backends and Brokers — Celery 5.2.7 documentation”. docs.celeryproject.org. 2022年6月23日時点のオリジナルよりアーカイブ2022年6月23日閲覧。

関連項目

[編集]

外部リンク

[編集]