URL'yi istemek için aiohttp
kullanın. Çoğu zaman normal çalışır, ancak bazen herhangi bir istisna oluşturmadan durur.Python aiohttp isteği durduruldu ancak istisna oluşturulmadı
Kodda gördüğünüz gibi, tüm özel durumları yakalarım, ancak durduğunda hiçbir özel durum kaydı yazdırılmaz.
günlükleri benziyor:
get_live_league_games: while True
try
yield from aiohttp.request
ama 'res = yield from r.json()
' durana ve özel durumlar durum değildir, yazdırmaz. kopukluk hatası yükseltir önce bağlantı çok uzun süre 'askıda' olabilir - nedeniyle internet doğayı yaşanabilir O
while True:
print('get_live_league_games: while True')
start = time.clock()
try:
print('try')
r = yield from aiohttp.request('GET',url)
print('yield from aiohttp.request')
res = yield from r.json()
print('res = yield from r.json()')
except aiohttp.errors.DisconnectedError as e:
logging.warning('get_live_league_games:',e)
yield from asyncio.sleep(10)
continue
except aiohttp.errors.ClientError as e:
logging.warning('get_live_league_games:',e)
yield from asyncio.sleep(10)
continue
except aiohttp.errors.HttpProcessingError as e:
logging.warning('get_live_league_games:',e)
yield from asyncio.sleep(10)
continue
except Exception as e:
logging.warning('get_live_league_games,Exception:',e)
yield from asyncio.sleep(10)
continue
print('request internet time : ', time.clock()-start)
yield from asyncio.sleep(10)
alakasız: kod çok tekrarlı. Sonuncu hariç tüm istisna işleyicileri bırakabilirsiniz. – jfs