チラウラヤーン3号

その辺のプログラマーのチラ裏です。

celery の result backend を mysql にする

今まではbrokerもresult backendも両方redisだった。 flowerを使う場合、redisはキー検索とか出来ないし、全件取得時のlimit, offset とかないから、メモリ上にflower起動後のタスク全部読まれて、メモリを圧迫するのかな、という懸念があった。

http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-result_backend

database Use a relational database supported by SQLAlchemy. See Database backend settings.

result_backend = 'db+scheme://user:password@host:port/dbname'

mysql

result_backend = 'db+mysql://scott:tiger@localhost/foo'

result backendをRDBにする場合、SQLAlchemy をインストールしておくこと。

DB内のceleryタスク管理用テーブルは、無ければ勝手に作られる。

これで、心なしか flower が少し安定した気がするがどうだろう…。

帰宅してからは、‪世界で一番美味しい果物はもしかして梨なんじゃないかと思いながら、梨を食べた。