【发布时间】:2014-08-23 21:51:54
【问题描述】:
我即将在 Flask/Google App Engine 中实现推送任务队列。 本质上,我想 POST 到 API 并在任务队列中执行底层工作。
初始入口点是一个 REST API (flask_restful)
class FTRecordsAPI(Resource):
def post(self):
arguments = self.reqparser.parse_args()
json_records = arguments.get('records')
user = User.query(...).get()
if user:
taskqueue.add(url='/worker/', params={'user': user})
return '', 201
else:
return '', 401
worker在url.py中定义为一个视图:
app.add_url_rule('/worker', 'worker',
view_func=csrf_protect.exempt(TaskView.as_view('taskView')))
TaskView 是:
from flask.globals import request
class TaskView(MethodView):
def post(self):
user = request.json['user']
return "OK"
奇怪的是,当我在TaskView 中调试时,请求对象中没有任何我发送到/worker 的用户对象的痕迹。但是我在那里找到了来自上一次调用的records 对象?!
请问我错过了什么?
【问题讨论】:
-
你确定它会进入 taskqueue.add 行吗?任务是否被创建?也许您的网址应该是 /worker 而不是 /worker/ ?
-
是的,我在
TaskView->user = request.json['user']中的断点实际上中断了。它肯定会进入那里。
标签: python google-app-engine flask task-queue flask-restful