if os.access(path_tmp, os.F_OK):
raise SystemExit(msg)
io_db["teststring"] = str(os.getpid()) + " " + str(time.time())
+ io_db["save_wait"] = 0
os.makedirs(io_db["path_server"], exist_ok=True)
io_db["file_out"] = open(io_db["path_out"], "w")
strong_write(io_db["file_out"], io_db["teststring"] + "\n")
a non-meta command from the commands_db merely triggers obey() on the next
command from the records file. If not, non-meta commands set
io_db["worldstate_updateable"] to world_db["WORLD_EXISTS"], and, if
- do_record is set, are recorded via record(), and save_world() is called.
- The prefix string is inserted into the server's input message between its
- beginning 'input ' & ':'. All activity is preceded by a server_test() call.
+ do_record is set, are recorded via record(), and save_world() is called if
+ 15 seconds have passed since the last time it was called. The prefix string
+ is inserted into the server's input message between its beginning 'input '
+ & ':'. All activity is preceded by a server_test() call.
"""
server_test()
print("input " + prefix + ": " + command)
commands_db[tokens[0]][2](*tokens[1:])
if do_record:
record(command)
- save_world()
+ if time.time() > io_db["save_wait"] + 15:
+ save_world()
+ io_db["save_wait"] = time.time()
io_db["worldstate_updateable"] = world_db["WORLD_ACTIVE"]
elif 0 != len(tokens):
print("Invalid command/argument, or bad number of tokens.")
def command_quit():
"""Abort server process."""
+ save_world()
raise SystemExit("received QUIT command")