相关疑难解决方法(0)

在python服务器进程之间共享列表

我有简单的UDPServer,它适用于多处理.

我想创建一个列表,其中包含有关所有客户端的信息.

我使用Manager,但我不明白,如何在列表中添加信息 - 我需要转移Manager的对象来处理,但是如何处理?我的新属性方式不起作用.

import multiprocessing
from socketserver import UDPServer, ForkingMixIn, DatagramRequestHandler
from socket import socket, AF_INET, SOCK_DGRAM
from settings import host, port, number_of_connections

class ChatHandler(DatagramRequestHandler):

    def handle(self):
        cur_process = multiprocessing.current_process()
        data = self.request[0].strip()
        socket = self.request[1]
        ChatHandler.clients.append(self.client_address) # error here
        print(ChatHandler.clients)


class ChatServer(ForkingMixIn, UDPServer):
    pass


if __name__ == '__main__':
    server = ChatServer((host, port), ChatHandler)
    ChatHandler.clients = multiprocessing.Manager().list()
    server_process = multiprocessing.Process(target=server.serve_forever)
    server_process.daemon = False
    server_process.start()
Run Code Online (Sandbox Code Playgroud)

如何解决?谢谢!

输出:

Exception happened during processing of request …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

9
推荐指数
1
解决办法
6834
查看次数

Python 多处理错误 'ForkAwareLocal' 对象没有属性 'connection'

下面是我的代码,为此我面临着多处理问题。我看到以前有人问过这个问题,我已经尝试过这些解决方案,但似乎不起作用。有人可以帮我吗?

from multiprocessing import Pool, Manager


Class X:
    def _init_():


    def method1(number1,var_a, var_b, var_c, var_d):

    return values 

if __name__ == 'main':


    for value in ["X", "Y"]:
        dict_values = Manager().dict()
        with Pool(1) as p:
            p.starmap(method1,
                      [
                          (1, dict_values, var_a, var_b, var_c, var_d),
                          (2, dict_values, var_a, var_b, var_c, var_d),
                          (3, var_a, var_b, var_c, var_d)
                      ])
Run Code Online (Sandbox Code Playgroud)

我面临的错误

multiprocessing.pool.RemoteTraceback: 

Traceback (most recent call last):
  File "/usr/lib64/python3.6/multiprocessing/managers.py", line 749, in _callmethod
    conn = self._tls.connection
AttributeError: 'ForkAwareLocal' object has no attribute 'connection'

During handling of the …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing python-3.x python-multiprocessing

6
推荐指数
1
解决办法
1317
查看次数