İçeride bir bağlantı akışı var ve bunları şimdi ve sonra rss
için kontrol etmek istiyorum. Ama benim get_rss()
işlevimi kapattığımda, engeller ve akış durur. Bu gereksizdir ve sadece get_rss()
işlevi hakkında ateşle ve unut istiyorum (başka bir yerde sonuçlarını saklar.) Böylece gibiYanıtı beklemeden fonksiyonu devre dışı bırak (Python)
Benim kodudur: Ben düşünüyorum
self.ff.get_rss(url) # not async
print 'im back!'
(...)
def get_rss(url):
page = urllib2.urlopen(url) # not async
soup = BeautifulSoup(page)
Eğer ilk çağrıyı ateşleyebilir ve unutabilirsem, o zaman bile, async olmadığından endişelenen urllib2'yi kullanabilirim. Herhangi bir yardım çok takdir edilir!
Düzenleme: gevent deniyorlar, ama bu bir şey gibi olur:
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 kayıtlı olması görünebilir ancak fonksiyon self.ff.do_url(url)
hiç çalıştırılacak görünmüyor. Neyi yanlış yapıyorum?
parçacığı arkadaşınız – zenpoy
ama biraz fazla her diyelim ikinci yeni bir iş parçacığı başlatmak için değil mi? – knutole
Hayır öyle değil, buna gerek yok, 3 iş parçacığı işleyebilir ve ortak bir sırayla onlara URL gönderebilirsiniz. –