2016-03-11 5 views
1

Я использую цветок сельдерея в докерах (см. this question). Команда заканчивает существо:База данных Flush Flower изредка и/или изящно выходит из Docker?

celery -A proj flower --persistent=True --db=/flower/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 

Остановка контейнера Docker грациозно не работает, и поэтому Docker насильственно убивает его, что означает, что ничто не заканчивается тем, что записывается в базу данных, и поэтому это как будто ничего не сохранилось.

Есть ли способ получить цветок, чтобы либо промывать его базу данных изредка, либо, что еще лучше, выйти изящно?

ответ

1

Чтобы снять флажок, вы можете установить max_tasks подходящему номеру.

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

Это ограничивает количество задач, которые будут храниться в db. Как только предел достигнут, он отменит старые задачи.

Вы можете использовать checkout docs для получения дополнительных настроек.