私はリンクのストリームが入ってきており、毎時rss
をチェックしたいと思います。しかし私が私のget_rss()
機能を発火させるとブロックし、ストリームは停止します。これは不必要である、と私はちょうどget_rss()
機能についてファイア・アンド・フォーゲットしたいと思います(それは別の場所にその結果を格納します。)これと同様に応答を待たずに機能を停止する(Python)
私のコードは次のとおりです。私がいることを考えている
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)
はまったく実行されていないようです。私は間違って何をしていますか?
スレッドはあなたの友達 – zenpoy
ですが、新しいスレッドごとに、たとえば、第二を開始するために少しくらいということではないでしょうか? – knutole
いいえ、そうではありませんが、3つのスレッドを起動して共通のキューを介してURLを送信する必要はありません。 –