我即将在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
工人被定义为在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
中进行调试时,在请求对象中没有任何地方是用户ob的任何跟踪我发送给/worker
的项目。但是我在那里发现了前一个电话中的records
对象?!
我错过了什么?
你确定它要进入taskqueue.add行吗?任务是否被创建?也许你的网址应该是/ worker而不是/ worker /? – marcadian
是的,我在'TaskView' - >'user = request.json ['user']'中的断点实际上会中断。它绝对会进入那里。 – Houman