我有一个链接流进来,我想不时检查它们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,但像这样没有任何反应:
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)
似乎根本没有运行。我究竟做错了什么?