我在Docker中运行Celery Flower(有关详细信息,请参见this question)。该命令最终为:
celery -A proj flower --persistent=True --db=/flower/flower
我已经在
/flower
上设置了永久卷。但是,即使经过30分钟的正常运行时间(在此期间处理了约120个任务),Flower也似乎从未将任何内容写入其数据库文件:-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会强行终止它,这意味着最终不会将任何内容写入数据库,因此好像没有任何持久性。
是否有办法让Flower偶尔刷新其数据库,或者更好地优雅退出?
最佳答案
要清除,您可以将max_tasks
设置为合适的数字。
celery -A proj flower --persistent=True --db=/flower/flower --max_tasks=100
这限制了将存储在数据库中的任务数。一旦达到限制,它将丢弃旧任务。
您可以checkout docs获得更多配置选项。
关于docker - 偶尔刷新Flower数据库和/或从Docker正常退出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35929907/