我遇到卡住程序的问题。我的代码如下所示:
for message in response.received_messages:
process = multiprocessing.Process(
target=self.process_task,
args=(message.message, callback),
)
processes[process] = (message.ack_id, message.message.data)
process.start()
while processes:
for process in list(processes):
ack_id, msg_data = processes[process]
if process.is_alive():
continue
else:
self.subscriber_client.acknowledge(
subscription_path,
[ack_id],
)
processes.pop(process)
一切正常,我一次处理最多5条消息,但有时一个进程卡住并阻塞了我的整个程序,我不知道为什么。重新启动后,当我以相同的参数(例如卡住的进程)推送消息时,它可以毫无问题地完成任务。 我注意到,每次当进程停滞htop时,表明一个内核正在100%工作。有什么想法会导致这种情况吗?还是我应该进行自定义超时之类的操作来终止卡住的进程?