我正在寻找一种在创建用户时在app引擎上触发事件的方法。我有类似
的东西def create_user(data):
user = new User(data)
user.put()
trigger('user_created', user)
return user
这样,外部模块可以在创建新用户时修改实体。我想我可以添加像
这样的东西add_hook('user_created', some_function)
到外部模块(在应用程序初始化时)。此函数会向实体添加字段,如
def some_function(user):
user.data = 'some value'
在app引擎上完成此操作的最佳方法是什么?
答案 0 :(得分:1)
通常,您可以使用the task queue处理此问题。创建新用户时,请触发一批任务以执行适当的后续工作。您可以在其他位置定义任务列表,并覆盖用户模型的put()
方法以将其排入队列。
这是一种在模型中强制执行的钩子。如果您需要在数据存储区强制执行的挂钩,则可以尝试新的Prospective Search API。我没有尝试过,但根据the docs,您可以指定模型,查询和任务处理程序URL,当创建与查询匹配的新实体时,将调用该URL。