Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果在while循环中满足条件,如何在while循环中并行调用函数?_Python_Python 3.x_Sockets_Multiprocessing_Serversocket - Fatal编程技术网

Python 如果在while循环中满足条件,如何在while循环中并行调用函数?

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

我正在创建一个套接字,服务器每天在其中创建一个新的日志文件。午夜时,需要对前一天的日志进行备份。日志文件很大,压缩并上传到云端可能需要时间。我不希望服务器等到备份完成后才继续侦听新的传入请求。我已经在下面的代码中根据“if”条件编写了伪代码,因为我不知道如何实现它。我猜我必须在这里使用多处理

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)