Part 1: Definició i sincronització d'una funció API amb python

Bloc

Part 1: Definició i sincronització d'una funció API amb python

El problema

Quan s'utilitzen API, la major part del temps es passa esperant una resposta. Quan es recopila informació de manera massiva d’un servei extern, això pot provocar molt temps perdut. Aquest article explora com passar de sol·licituds seqüencials a sol·licituds simultànies mitjançant Python Multiprocessament , Roscat i les funcions ** Async **.

Introducció

En un article anterior , vam escriure una funció senzilla que funcionava al voltant del límit de l'API Jira per al nombre de problemes retornats per una sola consulta. Això va solucionar el problema, però fins i tot amb només uns quants milers de resultats, el temps per recuperar tots els problemes es pot mesurar en minuts.

_Prova una consulta JQL que retorna 1334 números amb 50 números per sol·licitud (27 sol·licituds) _ _31 segons. _ _Utilitzant simultaneïtat per canviant 7 línies de codi , podem reduir-ho a _ 2,5 segons.

** Per què? ** Un perfil ràpid mitjançant la funció integrada %time la màgia a Jupyter mostra per què hi ha molt marge de millora.

CPU times: user 672 ms, sys: 125 ms, total: 797 ms Wall time: 31.4 s

Fer les sol·licituds de manera seqüencial només fa servir la nostra CPU durant 797 mil·lisegons de 31,4 segons de temps transcorregut. Així, dels 31 segons, _més que _ _97% _ del temps que es passa esperant per a la trucada de xarxa.

#jira # concurrent-programming #api # api-concurrency-python #python

towardsdatascience.com

Part 1: Definició i sincronització d'una funció API amb python

Exploració gràfica de la simultaneïtat a Python. En un article anterior, vam escriure una funció senzilla que funcionava al voltant del límit de l’API Jira pel nombre de problemes retornats per una sola consulta. Això va solucionar el problema, però fins i tot amb només uns quants milers de resultats, el temps per recuperar tots els problemes es pot mesurar en minuts.