下面是使用websocket-client库的代码的一部分,该库在一定限制下始终从Web套接字服务器获取数据,并在该限制下将其保存在数据库中。
def store_data_in_DB(data_list):
for data in data_list:
# save data in DB
class MySocket:
...
def on_message(self, ws, message):
data_dict = json.loads(message)
self.data_list.append(data_dict)
if len(self.data_list) == 1000:
proc = Process(
target=store_data_in_DB,
args=(self.data_list, )
)
proc.start()
self.data_list = []
...
我使用多处理的原因是让“保存数据”和“从服务器获取数据”并行进行。
问题在于它会发生某种内存泄漏,因为它在完成任务后没有处理Process
。
我尝试使用join()
,但它一直等到过程结束,这不是我想要的。
有什么办法解决这个问题?