Je procédez comme suit:Comment utiliser la fonctionnalité GAE différée?
from google.appengine.ext import deferred
def send_message(client_id, message):
logging.info("sending message...")
class MyHandler(webapp.RequestHandler):
def get(self, field_name):
...
scUpdate = {
'val': value,
'name': field_name_converted
}
message = simplejson.dumps(scUpdate)
deferred.defer(send_message, client_id, message, _countdown=random.randrange(0, 5, 1))
et d'obtenir
PermanentTaskFailure: 'module' object has no attribute 'send_message'
Quel est le problème ici?
Mise à jour. On dirait que le problème est le même que celui décrit ici - PermanentTaskFailure: 'module' object has no attribute 'Migrate' - mais je ne comprends pas comment résoudre ce problème.
Je pensais que le commentaire de Nick à cette réponse liée était assez clair - vous ne pouvez pas utiliser une fonction qui est définie dans un module que vous utilisez directement comme un gestionnaire de app.yaml. Déplacez-le dans un fichier différent et importez-le. –
@DanielRoseman, est-ce la seule approche possible? Donc, j'aurai la même fonctionnalité dans 2 fichiers différents? Serait-il préférable d'utiliser directement Task Queue à la place? –
Pourquoi serait-ce dans deux fichiers? Déplacez le code dans un fichier séparé, ne le copiez pas. –