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