リンクのストリームが入ってくるので、時々チェックしたいと思い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)はまったく実行されていないようです。私は何を間違っていますか?