偶尔刷新 Flower 数据库和/或从 Docker 优雅退出?

Cla*_*diu 2 persistence celery docker flower docker-compose

我在 Docker 中运行 Celery Flower(有关详细信息,请参阅此问题)。命令最终是:

celery -A proj flower --persistent=True --db=/flower/flower
Run Code Online (Sandbox Code Playgroud)

我已经在/flower. 然而,看起来 Flower 从不向其数据库文件写入任何内容,即使在 30 分钟的正常运行时间之后(在此期间处理了大约 120 个任务):

-rw-r--r--  1 user user    0 Mar 11 00:08 flower.bak
-rw-r--r--  1 user user    0 Mar 10 23:29 flower.dat
-rw-r--r--  1 user user    0 Mar 11 00:08 flower.dir
Run Code Online (Sandbox Code Playgroud)

优雅地停止 Docker 容器是行不通的,因此 Docker 强行杀死它,这意味着最终没有任何内容被写入数据库,因此就好像没有任何内容被持久化。

有没有办法让 Flower 偶尔刷新它的数据库,或者更好的是,优雅地退出?

Chi*_*and 6

要冲出,您可以设置max_tasks为合适的数字。

celery -A proj flower --persistent=True --db=/flower/flower --max_tasks=100
Run Code Online (Sandbox Code Playgroud)

这限制了将存储在数据库中的任务数量。一旦达到限制,它将丢弃旧任务。

您可以查看文档以获取更多配置选项。