我正在调查如何在App Engine中运行后台任务。 似乎任务队列是一个不错的选择。但是任务队列如何处理用户登录?我的后台任务需要用户登录。 我的理解是,当任务队列运行任务时,它会向我的应用程序发送HTTP任务,但如果我的所有资源都受到保护并需要用户上下文,我该如何处理?
答案 0 :(得分:2)
允许任务队列使用仅限管理员的端点,例如,您可以在任务的有效负载中包含用户ID,通过仅限管理员的URL运行它,然后只需信任用户ID在运行时是否正确。
Google的文档here
对此进行了解释答案 1 :(得分:1)
您的servlet可以依赖特定于任务队列的标头(请参阅https://cloud.google.com/appengine/docs/java/taskqueue/push/creating-handlers#reading_request_headers)。这些是由Google App Engine在内部设置的,因此您可以信赖它。
您还可以使用参数(请参阅https://cloud.google.com/appengine/docs/java/taskqueue/push/example)将任何数据传递给队列任务处理器(用户ID,令牌等)。