私はローカルのファイルサーバーを起動するpythonスクリプトを作成していますが、そのサーバーは生きている間に30秒ごとにファイルに書き込みます。私はライター関数をデーモンスレッドにしたので、サーバとライター関数を同期して実行したいと思います...私の主な質問は、デーモンが書いている途中であれば、このデーモンスレッドはサーバが停止すると終了します。終了する前にその操作を完了しますか?ファイルを1/2にすることは本当に悪いことです。ここにコードがありますが、実際に書き込まれるファイルはJSONの約3k行ですので、心配です。Python3:デーモンが繰り返しを終了するのを待ちます
import http.server
import socketserver
from time import sleep
from threading import Thread
class Server:
def __init__(self):
self.PORT = 8000
self.Handler = http.server.SimpleHTTPRequestHandler
self.httpd = socketserver.TCPServer(("", self.PORT), self.Handler)
print("Serving at port", self.PORT)
def run(self):
try:
self.httpd.serve_forever()
except KeyboardInterrupt:
print("Server stopped")
def test():
while True:
with open('test', mode='w') as file:
file.write('testing...')
print('file updated')
sleep(5)
if __name__ == "__main__":
t = Thread(target=test, daemon=True)
t.start()
server = Server()
server.run()