Python 如果在while循环中满足条件,如何在while循环中并行调用函数?
我正在创建一个套接字,服务器每天在其中创建一个新的日志文件。午夜时,需要对前一天的日志进行备份。日志文件很大,压缩并上传到云端可能需要时间。我不希望服务器等到备份完成后才继续侦听新的传入请求。我已经在下面的代码中根据“if”条件编写了伪代码,因为我不知道如何实现它。我猜我必须在这里使用多处理Python 如果在while循环中满足条件,如何在while循环中并行调用函数?,python,python-3.x,sockets,multiprocessing,serversocket,Python,Python 3.x,Sockets,Multiprocessing,Serversocket,我正在创建一个套接字,服务器每天在其中创建一个新的日志文件。午夜时,需要对前一天的日志进行备份。日志文件很大,压缩并上传到云端可能需要时间。我不希望服务器等到备份完成后才继续侦听新的传入请求。我已经在下面的代码中根据“if”条件编写了伪代码,因为我不知道如何实现它。我猜我必须在这里使用多处理 while True: clientsocket, address = s.accept() enter_log("SUCCESS", "Established incoming conne
while True:
clientsocket, address = s.accept()
enter_log("SUCCESS", "Established incoming connection from {}".format(address))
if midnight:
call_another_function_parallelly_for_backup_and_let_the_loop_continue_listening
这将创建新线程直到循环,如果是真的…我将生成一个线程来处理日志备份。或者,如果可以转换代码,请使用asyncio。它非常适合这些类型的应用。谢谢,它很有效。我还认为多处理库也可以做到这一点。你认为哪一个适合做这项工作?欢迎!工作原理相同,但在线程方面你有更多的特权..接受我的答案,这将有助于其他..谢谢,如果你觉得我的问题很有趣,你也可以投票吗?:)
while True:
clientsocket, address = s.accept()
enter_log("SUCCESS", "Established incoming connection from {}".format(address))
if midnight:
t = threading.Thread(target=your_func, args=(your_arg,))
t.start()
t.join()
def your_func(your_arg):
try:
your logic
except Exception as e:
print(e)