1

問題はありますか :

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+でプログラムを中断するには、つまり、適切に閉じられませんか?Cdumbdbm

dumpdbm.sync ()はデータの安全性を保証するのに十分ですか、それとも.close()絶対に必須ですか?

4

1 に答える 1

1

ドキュメントは、そのメソッドを呼び出すとディスク上のディレクトリとデータファイルが同期されると述べている場合、同期で十分であることを示唆しています。

ただし、ここでのより良いアプローチは、終了する前にファイルを閉じることだと思います。常に で終了している場合はCtrl-C、シグナル ハンドラーを登録することでこれを実現できますSIGINT(これは によって送信されるシグナルCtrl-Cです)。このシグナル ハンドラーは同期し、DB を閉じてから、exit() を呼び出す必要があります。

于 2016-10-25T00:57:56.053 に答える