偶尔刷新花数据库和/或从Docker正常退出? [英] Flush Flower database occasionally and/or exit gracefully from Docker?

查看:434
本文介绍了偶尔刷新花数据库和/或从Docker正常退出?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在Docker中运行Celery Flower(请参见该问题以获取详细信息).该命令最终为:

I'm running Celery Flower in Docker (see this question for details). The command ends up being:

celery -A proj flower --persistent=True --db=/flower/flower

我已经在/flower上设置了一个永久卷.但是,即使在30分钟的正常运行时间后(处理了约120个任务),Flower也似乎从未将任何内容写入其数据库文件:

I've got a persistent volume all set up on /flower. However, it looks like Flower never writes anything to its database file, even after 30 minutes of uptime (during which ~120 tasks were processed):

-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

正常停止Docker容器是行不通的,因此Docker会强行杀死它,这意味着最终不会将任何内容写入数据库,因此好像没有任何持久性一样.

Stopping the Docker container gracefully doesn't work, and so Docker forcefully kills it, which means nothing ends up being written to the database and so it's as if nothing was persisted.

是否有办法让Flower偶尔刷新其数据库,或者更好地退出它?

Is there a way to get Flower to either flush its database occasionally, or, better yet, to exit gracefully?

推荐答案

要清除,您可以将max_tasks设置为合适的数字.

To flush out, you can set max_tasks to a suitable number.

celery -A proj flower --persistent=True --db=/flower/flower --max_tasks=100

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

This limits number of tasks that will be stored in the db. Once limit is reached, it will discard old tasks.

您可以签出文档以获取更多配置选项.

You can checkout docs for more configuration options.

这篇关于偶尔刷新花数据库和/或从Docker正常退出?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆