rp9*_*p90 2 google-app-engine task-queue
我正在使用python和Google应用引擎.我想使用任务队列.作为任务队列处理程序的一部分,我检查当前用户是否是管理员(使用用户服务).此测试总是失败.有没有办法让这个测试通过?
更新:为了避免进一步混淆,我试图找出触发任务的用户是否是管理员(这只是一个简单的例子).我知道该任务正在从服务器运行,所有用户cookie早已不复存在.所以我跳过的答案是将会话转移到任务的方法
import logging
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import taskqueue
class MyRequesHandler(webapp.RequestHandler):
def get(self):
taskqueue.add(url="/task/")
class MyTaskHandler(webapp.RequestHandler):
def post(self):
if users.is_current_user_admin():
logging.debug("admin")
else:
logging.debug("not admin")
def main():
logging.getLogger().setLevel(logging.DEBUG)
application = webapp.WSGIApplication([
('/', MyRequesHandler),
('/task/', MyTaskHandler)
],
debug=True)
run_wsgi_app(application)
Run Code Online (Sandbox Code Playgroud)
Users API反映了当前请求的登录用户的详细信息,显然在任务队列任务的情况下,没有用户,因为它是由任务队列系统启动的.在排队任务之前,您需要执行此检查,并将结果作为标志传递给任务.
| 归档时间: |
|
| 查看次数: |
1168 次 |
| 最近记录: |