Je dois écrire un tas de tâches où chaque tâche doit interroger un service Web externe. Le service Web répond toujours avec un statut 202 ACCEPTED et pointe dans l'en-tête Location vers l'URI où le résultat peut être interrogé. Le temps nécessaire à ce service Web pour fournir le résultat peut varier de 2 secondes à une minute. Je me demandais quelle était la meilleure approche pour programmer ma tâche de céleri. Pour l'instant j'envoie la demande et commence une boucle while jusqu'à ce que je Pöll avec succès le résultat, par exemple:Attendre le résultat d'un service Web externe dans une tâche
while True:
result = poll_webservice()
if result:
break
else:
time.sleep(5)
[ continue with the rest of the task ]
Bien que cela fonctionne certainement il semble très brut pour moi et aussi je bloquer le travailleur de céleri jusqu'à ce que le résultat est sondé. Y a-t-il une meilleure approche?
si votre appelez un * vrai * webservice, le script ne devrait aller quand il a obtenu une réponse - voir [Plongez dans la page Python SOAP] (http://diveintopython.org/soap_web_services/index.html) pour certains exemples – JMax
@JMax, il existe une possibilité pour quelque chose comme http://docs.picloud.com/rest.html, donc il ne peut pas faire cela. – hymloth
@hymloth: merci de signaler cette URL – JMax