поправил таймслип
This commit is contained in:
@@ -164,8 +164,14 @@ def atomic_write_json(path: str, data: Any) -> None:
|
|||||||
# 1. Готовим данные заранее
|
# 1. Готовим данные заранее
|
||||||
# ensure_ascii=False чтобы не терять юникод, indent=None чтобы не раздувать файл
|
# ensure_ascii=False чтобы не терять юникод, indent=None чтобы не раздувать файл
|
||||||
payload = json.dumps(data, ensure_ascii=False, separators=(",", ":"))
|
payload = json.dumps(data, ensure_ascii=False, separators=(",", ":"))
|
||||||
path = "static/" + path + ".json"
|
full_path = "static/" + path + ".json"
|
||||||
target = Path(path)
|
try:
|
||||||
|
with open(full_path, "r", encoding="utf-8") as f:
|
||||||
|
if f.read() == payload:
|
||||||
|
return # ничего не поменялось -> не пишем, не fsync'им
|
||||||
|
except FileNotFoundError:
|
||||||
|
pass
|
||||||
|
target = Path(full_path)
|
||||||
tmp_fd, tmp_path = tempfile.mkstemp(
|
tmp_fd, tmp_path = tempfile.mkstemp(
|
||||||
dir=target.parent,
|
dir=target.parent,
|
||||||
prefix=target.name + ".tmp.",
|
prefix=target.name + ".tmp.",
|
||||||
@@ -173,7 +179,7 @@ def atomic_write_json(path: str, data: Any) -> None:
|
|||||||
)
|
)
|
||||||
os.close(tmp_fd) # мы будем писать сами
|
os.close(tmp_fd) # мы будем писать сами
|
||||||
|
|
||||||
lock = _select_lock(path)
|
lock = _select_lock(full_path)
|
||||||
with lock:
|
with lock:
|
||||||
# 2a. Записываем полностью во временный файл
|
# 2a. Записываем полностью во временный файл
|
||||||
with open(tmp_path, "w", encoding="utf-8") as f:
|
with open(tmp_path, "w", encoding="utf-8") as f:
|
||||||
@@ -736,7 +742,7 @@ def render_loop(stop_event: threading.Event, out_name: str = "game") -> None:
|
|||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
logger.exception(f"[RENDER_THREAD] unexpected error: {ex}")
|
logger.exception(f"[RENDER_THREAD] unexpected error: {ex}")
|
||||||
|
|
||||||
time.sleep(0.2)
|
time.sleep(1)
|
||||||
|
|
||||||
logger.info("[RENDER_THREAD] stop render loop")
|
logger.info("[RENDER_THREAD] stop render loop")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user