[PYTHON] Comment écrire la mise à jour de la banque de données en asynchrone avec Google Apps Engine

J'ai écrit ce que je voulais dire dans le titre. Python2.7

from google.appengine.ext import ndb

class TestModel(ndb.Model):
    name = ndb.StringProperty()

@ndb.transactional_tasklet
def txn (key):
    entity = yield key.get_async()
    if not entity:
      entity = TestModel(key=key)
    entity.populate(key=key, name='foo')
    yield entity.put_async()
    raise ndb.Return(entity)

def put_multi_async(keys):
    @ndb.tasklet
    def _put_multi_async(keys):
        results = yield [txn(key) for key in keys]
        raise ndb.Return(results)

    return _put_multi_async(keys).get_result()

def main():
  key1 = ndb.Key(TestModel, 1)
  key2 = ndb.Key(TestModel, 2)
  key3 = ndb.Key(TestModel, 3)

  res = put_multi_async([key1, key2, key3])
  print res

main()

'''
=>
[TestModel(key=Key('TestModel', 1), name=u'foo'),
 TestModel(key=Key('TestModel', 2), name=u'foo'),
 TestModel(key=Key('TestModel', 3), name=u'foo')]
'''

Recommended Posts

Comment écrire la mise à jour de la banque de données en asynchrone avec Google Apps Engine
Comment mettre à jour avec SQLAlchemy?
Python: comment utiliser async avec
Comment mettre à jour Google Sheets à partir de Python
Comment rechercher Google Drive dans Google Colaboratory
[TF] Comment spécifier les variables à mettre à jour avec Optimizer
Comment mettre à jour Spyder
Comment charger des fichiers dans Google Drive avec Google Colaboratory
Comment analyser avec Google Colaboratory à l'aide de l'API Kaggle
Comment utiliser Django avec Google App Engine / Python
Comment mettre à jour Tkinter de Python vers la version 8.6
Comment activer la lecture / écriture de net.Conn avec Golang pour annuler avec le contexte
Comment lancer avec Theano
Comment modifier avec SQLAlchemy?
Écrire en csv avec Python
Comment séparer les chaînes avec ','
Comment faire RDP sur Fedora31
Comment mettre à jour le blog FC2, etc. en utilisant XMLRPC avec Python
Comment gérer UnicodeDecodeError lors de l'exécution du téléchargement d'image Google
Comment supprimer avec SQLAlchemy?
Comment écrire hors ligne en temps réel Résolution des problèmes E05 avec Python
Comment utiliser Google Colaboratory
Lors de l'utilisation de la requête ancêtre avec Google Apps Engine, le parent n'a pas besoin d'utiliser une entité existante
Comment se connecter à Cloud Firestore à partir de Google Cloud Functions avec du code Python
Comment écrire une docstring pour créer un document tuple nommé avec sphinx
Comment écrire hors ligne en temps réel Résolution des problèmes F01 avec Python
Comment annuler RT avec Tweepy
[Rails] Comment afficher Google Map
[Python] Ecrire dans un fichier csv avec Python
Comment écrire sobrement avec des pandas
Comment mettre à jour Spyder dans Anaconda
Comment installer python-pip avec ubuntu20.04LTS
Comment gérer les données déséquilibrées
Développement Google AppEngine avec Docker
Comment démarrer avec Scrapy
Comment démarrer avec Python
Écrivez FW sur TWE-Lite avec TWE-Lite R.
Comment gérer l'erreur DistributionNotFound
Comment démarrer avec Django
Comment augmenter les données avec PyTorch
Comment écrire une image de base Docker
Comment calculer la date avec python
Comment écrire un fichier wsgi.py indépendant de l'environnement Django1.9
Comment installer mysql-connector avec pip3
Comment INNER JOIN avec SQL Alchemy
Remarques sur la rédaction de requirements.txt
Comment installer Anaconda avec pyenv
Le 16ème problème d'écriture en temps réel hors ligne a été résolu avec Python
Réfléchissez à la façon d'écrire un filtre avec les versions Shotgun API-Contact
Comment écrire hors ligne en temps réel J'ai essayé de résoudre E11 avec python
Le 16ème comment écrire un problème de référence en temps réel hors ligne à résoudre avec Python
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
Le 19ème comment écrire un problème de référence en temps réel hors ligne à résoudre avec Python
Le 15e problème d'écriture en temps réel hors ligne a été résolu avec python