应用引擎上的触发事件

时间:2011-05-02 22:29:50

标签: python google-app-engine events

我正在寻找一种在创建用户时在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引擎上完成此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

通常,您可以使用the task queue处理此问题。创建新用户时,请触发一批任务以执行适当的后续工作。您可以在其他位置定义任务列表,并覆盖用户模型的put()方法以将其排入队列。

这是一种在模型中强制执行的钩子。如果您需要在数据存储区强制执行的挂钩,则可以尝试新的Prospective Search API。我没有尝试过,但根据the docs,您可以指定模型,查询和任务处理程序URL,当创建与查询匹配的新实体时,将调用该URL。