2016-10-25 5 views
1

Является ли это проблемой делать:Syncing, но не закрывая дБмВт

import time 
import dumbdbm 

db = dumbdbm.open('db.db', 'c') 

# modify the persistent dict/"DB" here 
db['foo'] = 'bar' 
db.sync()   

while True: 
    # doing other things, sometimes modifying the db + syncing with .sync() 
    time.sleep(1) 

и сломать программу с CTRL + C во время сна, то есть dumbdbmне будет закрыта?

Достаточно dumbdbm.sync(), чтобы гарантировать безопасность данных, или .close() абсолютно обязательно?

+0

Вы можете закрыть * перед тем, как вы спите. –

+0

@ScottHunter, это был упрощенный код всего моего дела. Я изменил. – Basj

ответ

1

Синхронизация documentation implies достаточно, когда говорится, что вызов этого метода синхронизировал каталог на диске и файлы данных.

Однако, я думаю, что лучший подход здесь - закрыть файл перед выходом. Если вы всегда выходите с Ctrl-C, вы можете сделать это, зарегистрировав обработчик сигнала для SIGINT (который является сигналом, посланным Ctrl-C.) Этот обработчик сигнала должен синхронизировать, закрыть БД, а затем вызвать exit().

+0

Спасибо @gbe. Можете ли вы указать, какая часть документа говорит, что этого достаточно? – Basj

+0

Я отредактировал свой ответ, чтобы включить ссылку на эту часть документации. – gbe

 Смежные вопросы

  • Нет связанных вопросов^_^