Je suis en train d'écrire une application Twitter dans Google App Engine. Il accepte les commandes en tant que messages directs, j'ai donc configuré un service cronjob tiers pour appeler un gestionnaire qui traite les agents de gestion à intervalles réguliers. J'ai un modèle 'Info' qui n'a qu'une seule entrée, il stocke des données communes qui sont utilisées dans de nombreux endroits de l'application (dans ce cas, l'heure à laquelle les messages ont été traités récemment). Le schéma général de mon gestionnaire est comme ceci:Incompatibilité de la base de données Google App Engine
class Info(db.Model):
msg_polled = db.DateTimeProperty(auto_now_add = True)
.... More Properties ....
@classmethod
def get_info(cls):
info = cls.all().get()
if not info:
info = cls()
info.put()
return info
---------------------------------------------------------
info = Info.get_info()
msgs = api.GetDirectMessages(since = info.msg_polled)
if not msgs:
return
logging.info('Processing Messages since %s ' % str(info.msg_polled))
for msg in msgs:
...process commands...
logging.info('Processed Message :- @%s : %s' % (msg.sender_screen_name, msg.text))
info.msg_polled = datetime.datetime.now()
info.put()
Mais parfois je reçois des journaux comme ceci:
I 03-30 07:50AM 10.973
Processing Messages since Sun, 29 Mar 2009 11:41:59 GMT
I 03-30 07:50AM 11.122
Processed Message :- @foo : Foo_Bar
-------------------------------------------------------
I 03-30 07:46AM 08.014
Processing Messages since Sun, 29 Mar 2009 11:41:59 GMT
I 03-30 07:46AM 08.130
Processed Message :- @foo : Foo_Bar
Ici, il semble que les informations ne s'engage à la base de données. Le message est traité plusieurs fois, parfois jusqu'à 10 fois avant que la valeur msg_polled ne change. Mais je ne reçois aucune exception Datastore. Cela n'arrive qu'une fois de temps en temps.
Toute aide est appréciée.
Vous ne montrez pas dans votre échantillon comment vous récupérez des informations à l'origine. Pouvez-vous inclure cela? –
En outre, le deuxième ensemble d'entrées de journal est daté _avant_ le premier ensemble - était-ce intentionnel? –
Désolé, je vais inclure cela aussi .. et oui, les journaux sont dans l'ordre chronologique inverse .. – z33m