简单的Google App Engine任务队列教程? Flask/Python/GAE [英] Simple Google App Engine Task Queue tutorial? Flask/ Python/ GAE

查看:72
本文介绍了简单的Google App Engine任务队列教程? Flask/Python/GAE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我什至无法获得任务队列来触发简单的打印语句.

I can't even get a task queue to fire a simple print statement.

我不知道我的应用程序结构是否正确...

I don't know if my app structure is incorrect or not...

最简单的任务队列示例及其结构是什么?

What's the most simple example of a task queue and the structure for it?

因为这对我不起作用:

@app.route('/task', methods=["GET", "POST"])
def testtask():
  print "Hi, I'm calling the task"
  taskqueue.add(
    url='/execute_task'
  )
  return "I called the task"

@app.route('/execute_task', methods=["GET", "POST"])
def execute_task():
  print "I'm executing the task"
  return "I excecuted the task"

两条路线都在app.yaml文件中:

both routes are in the app.yaml file:

- url: /execute_task
  script: app.app
  login: admin
- url: /task
  script: app.app
  login: admin

在终端机上:

我叫任务INFO 2018-01-28 23:00:49,521 module.py:788]默认值:"GET/task HTTP/1.1" 200 17

Hi, I'm calling the task INFO 2018-01-28 23:00:49,521 module.py:788] default: "GET /task HTTP/1.1" 200 17

http://localhost:8000/taskqueue

显示:

队列名称最大速率桶中队列中最早的任务(UTC)任务

Queue Name Maximum Rate Bucket Size Oldest Task (UTC) Tasks in Queue

默认5.00/秒5 2018/01/28 22:59:59(0:04:44前)2

default 5.00/s 5 2018/01/28 22:59:59(0:04:44 ago) 2

推荐答案

对任务显示的print语句是没有意义的.您将永远不会看到它.只有任务可以看到它.让任务通过日志与您对话.

A print statement shown to a task is meaningless. You'll never see it. Only the task sees it. Let the task talk to you via the logs.

看看这是否更好:

from flask import Response
from google.appengine.api import taskqueue
import logging

@app.route('/task', methods=["GET", "POST"])
def testtask():
  logging.info("sending task to queue in testtask...")
  taskqueue.add(
    url    = "/execute_task",
    name   = "task_name_here",
    method = "POST",
    params = {
      "sender": "me"
    }
  )
  return Response("sending task to queue... Check logs", mimetype='text/plain', status=200)

@app.route('/execute_task', methods=["GET", "POST"])
def execute_task():
  logging.info("I did the task")
  logging.info("params: {}".format(request.form))
  return Response("did it. You'll never see this message", mimetype='text/plain', status=200)

这篇关于简单的Google App Engine任务队列教程? Flask/Python/GAE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆