Question

J'ai un service simple qui fait approximativement ce qui suit:

  1. Un client HTTP se connecte au serveur
  2. Le serveur écrit le SessionID du client et l'horodatage à la base de données, et dans la plupart des cas, il ne fait que renvoyer une réponse vide

(Les cas où il fait du travail réel et renvoie les données réelles ne sont pas pertinentes pour cette question)

Afin de retourner cette réponse dès que possible, j'aimerais écrire les informations à Memcache dans le corps du gestionnaire de demandes (parce que Memcache est rapide), et engendrer un fil séparé où une autre fonction utilisant Sqlalchemy l'écrira dans le persistance stockage. De cette façon, je pourrai revenir immédiatement après avoir écrit à Memcache et reproduir un fil, et le gestionnaire de demande n'aura pas à attendre que SQLALCHEMY enregistre les informations dans la base de données.

Est-ce que ça a du sens? Si oui, comment dois-je l'implémenter?

Était-ce utile?

La solution

Vous pouvez utiliser quelque chose comme le Fituration de tâches distribuée au céleri Pour décharger le traitement vers d'autres machines. Il nécessite la configuration d'une infrastructure distincte, mais permettra aux tâches d'être remises à partir des demandes Web de traitement en arrière-plan, tandis que le HTTP Repsonse à la demande peut être renvoyé immédiatement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top