gpt4 book ai didi

python - 无需等待答案即可触发功能(Python)

转载 作者:行者123 更新时间:2023-12-04 12:34:16 25 4
gpt4 key购买 nike

我有一个链接流进来,我想检查它们是否有 rss时不时地。但是当我打开我的get_rss()函数,它阻塞并且流停止。这是不必要的,我只想一劳永逸地忘记get_rss()。函数(它将结果存储在别处。)

我的代码是这样的:

self.ff.get_rss(url)    # not async
print 'im back!'

(...)

def get_rss(url):
page = urllib2.urlopen(url) # not async
soup = BeautifulSoup(page)

我在想,如果我可以触发并忘记第一次调用,那么我什至可以使用 urllib2 而不必担心它不是异步的。任何帮助深表感谢!

编辑:
尝试 gevent,但像这样没有任何 react :
print 'go'
g = Greenlet.spawn(self.ff.do_url, url)
print g
print 'back'

# output:
go
<Greenlet at 0x7f760c0750f0: <bound method FeedFinder.do_url of <rss.FeedFinder object at 0x2415450>>(u'http://nyti.ms/SuVBCl')>
back

Greenlet 似乎已注册,但函数 self.ff.do_url(url)似乎根本没有运行。我究竟做错了什么?

最佳答案

使用多处理模块触发并忘记:

def fire_and_forget(arg_one):
# do stuff
...

def main_function():
p = Process(target=fire_and_forget, args=(arg_one,))
# you have to set daemon true to not have to wait for the process to join
p.daemon = True
p.start()
return "doing stuff in the background"

关于python - 无需等待答案即可触发功能(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13649062/

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