gpt4 book ai didi

Python 多处理超时问题

转载 作者:行者123 更新时间:2023-11-30 23:31:06 24 4
gpt4 key购买 nike

我在 python 中使用多处理,尝试在超时后终止运行。但是不行,也不知道原因。

我按照一个例子,看起来很简单。只需要启动该进程,2秒后,终止运行。但这对我不起作用。

你能帮我解决一下吗?感谢您的帮助!

from amazonproduct import API
import multiprocessing
import time



AWS_KEY = '...'
SECRET_KEY = '...'
ASSOC_TAG = '...'


def crawl():

api = API(AWS_KEY, SECRET_KEY, 'us', ASSOC_TAG)

for root in api.item_search('Beauty', Keywords='maybelline',
ResponseGroup='Large'):
# extract paging information
nspace = root.nsmap.get(None, '')
products = root.xpath('//aws:Item',
namespaces={'aws' : nspace})

for product in products:
print product.ASIN,

if __name__ == '__main__':
p = multiprocessing.Process(target = crawl())
p.start()
if time.sleep(2.0):
p.terminate()

最佳答案

好吧,这行不通:

if time.sleep(2.0):
p.terminate()

time.sleep 不返回任何内容,因此上述语句始终等效于 if None:。在 bool 上下文中,NoneFalse,所以你就可以了。

如果您希望它始终终止,请删除该if语句。只需执行一次time.sleep即可。

另外,错误:

p = multiprocessing.Process(target = crawl())

这并没有按照您的想法进行。您需要指定 target=crawl,而不是 target=crawl()。后者在主线程中调用该函数,前者将该函数作为参数传递给 Process,然后后者将并行执行它。

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

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