2022年10月5日水曜日

Celery の状況を UI で管理できる flower を試してみた

Celery の状況を UI で管理できる flower を試してみた

概要

celery には flower という管理 UI の機能があります
今回はインストールから実際に起動して動作確認するところまで行ってみました

環境

  • macOS 10.15.5
  • Python 3.8.3
    • celery 4.4.4
    • flower 0.9.4 (1.2.0)

flower のインストール

  • pipenv install flower

flower の起動

  • pipenv run flower -A tasks --broker=redis://localhost:6379 --port=5555

--broker で celery が使っているブローカを指定します
--port でポートを指定できます
デフォルトは 5555 になっています

P.S 20221005

flower1.2.0では以下のように起動コマンドが変わっているのでご注意ください

  • pipenv run celery -A tasks flower --broker=redis://localhost:6379 --port=5555

動作確認

今回使うタスクは以下の通りです

from celery import Celery

app = Celery('tasks', broker='redis://localhost:6379')

@app.task
def add(x, y):
    print(x + y)

起動しましょう

  • pipenv run celery -A tasks worker -l info

あとは何回かタスクを消化させてみます

from tasks import add

add.delay(100, 1)
  • pipenv run python test.py

これで localhost:5555 にアクセスしてみましょう
起動しているワーカの一覧が表示されると思います

ワーカをクリックすると詳細情報が確認できます
プールサイズの変更なども画面からできるようです
またタスクを実行するキュー (Consumer) も画面から追加できるようです

最後に

celery の管理 UI である flower を試してみました
ブローカを指定して起動するだけなので簡単です
ある程度のワーカの設定変更もできるのでプロセスを再起動することなく操作できるのは嬉しい点かなと思います

認証を追加することもできるようなので特定のユーザにのみ閲覧させることも可能です

参考サイト

1 件のコメント:

  1. celeryの最新版では以下のような起動コマンドになっているのでご注意ください

    pipenv run celery -A tasks flower --broker=redis://localhost:6379 --port=5555

    返信削除