Je configure un site en utilisant un flacon python. Quand il me confond, je suis ici pour montrer ma pauvre Situation:Activer la réponse asynchrone dans un flacon
...
@app.route('/wanted_delay_response')
def delay_response():
def background_work():
# I want to check some flags in the background
# this should not block, but it does as I try below
pass
gevent.spawn(background_work)
# the most confusing part comes:
return 'This is not what I really want to response'
comme indiqué ci-dessus, le travail de fond se poursuivra en arrière-plan, mais le résultat que je veux viendrais de lui.
Cependant, je n'ai aucune idée comment notifier le serveur pour traiter d'autres demandes lorsque le travail en arrière-plan est en cours d'exécution, mais avec un résultat.
Ou est-il élégant de mettre de côté la demande en cours, et de revenir à la réponse lorsque le travail en arrière-plan se termine, dans l'intervalle, le serveur peut traiter d'autres demandes?
Merci d'avoir fourni une solution géniale. C'est vraiment acceptable pour moi que les requêtes HTTP existent juste un court instant. Le module Websockets présente un grand avantage pour moi, non seulement pour la situation actuelle que j'ai rencontrée, mais pour fusionner d'autres parties de mon serveur. – xete