Celeryは、分散メッセージパッシングをベースとしたオープンソースの非同期タスクキューまたはジョブキューである。スケジューリングもサポートしているが、リアルタイムでのオペレーションに重点を置いている。
概要 「Tasks」と呼ばれる実行ユニットは、マルチプロセッシング、eventlet、またはgevent を使用して1つ以上のワーカーノード上で同時に実行される。Tasksは非同期(バックグラウンドで)に実行することも、同期的に(終了を待つように)実行することもできる。Celeryは、Instagramなどの本番システムで利用されており、1日に数百万のTasksを処理できる。
技術 CeleryはPythonで書かれているが、プロトコルは任意の言語で実装でき、Webhookを使用して他の言語でも操作できる。また、RubyクライアントRCelery、PHPクライアント、Goクライアント、Rustクライアント、Node.jsクライアントなどがある。
Celeryを実行するにはメッセージブローカーが必要となる。2024年10月の時点で、RedisとRabbitMQが活発にメンテナンス、監視されている。Amazon SQSも対応とメンテナンスが行われているが、worker inspectionとランタイム時の管理には対応していない。ZookeeperとKafkaは現在実験的な開発段階にある。
出典
関連項目
Advanced Message Queuing Protocol (AMQP)
外部リンク