gpt4 book ai didi

Python 多处理超时

转载 作者:太空宇宙 更新时间:2023-11-04 03:20:54 28 4
gpt4 key购买 nike

我有一个程序不断地从数据库中获取数据,然后处理数据,然后通过 FTP 将其上传到服务器。看起来像:

feed = connect2database()
for data in feed.changes():
data = process(data)
ftpUpload(data)

这里的问题是ftp上传可能会永远挂掉,从而导致程序挂掉。我想实现一种在子进程中进行上传的方法,为每个子进程设置一个超时,如果有一个超时,就将其杀死。我不需要从子流程中取回任何数据,也不需要在上传失败时重试。

但我不想执行.join(time),因为主进程必须停在那里等待。我只是想让主进程不断地获取数据然后fork子进程来上传,它超过了超时,就杀掉它以避免僵尸。就这样。有人可以建议架构吗?谢谢。

最佳答案

您可以使用 Pebble为此。

from pebble.process import concurrent

TIMEOUT_IN_SECONDS = 5

feed = connect2database()
for data in feed.changes():
data = process(data)
concurrent(target=ftpUpload, args=(data, ), timeout=TIMEOUT_IN_SECONDS)

关于Python 多处理超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34776106/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com