Триггерное событие в движке приложения - PullRequest
3 голосов
/ 03 мая 2011

Я ищу способ вызвать событие в движке приложения при создании пользователя. У меня есть что-то вроде

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'

Каков наилучший способ сделать это на движке приложения?

1 Ответ

1 голос
/ 03 мая 2011

Обычно это то, с чем вы бы справились в очереди задач . Когда вы создаете нового пользователя, запускайте пакет задач, чтобы выполнить любую последующую работу. Вы можете определить список задач в другом месте и переопределить метод put() вашей пользовательской модели, чтобы поставить их в очередь.

Это своего рода крючок, применяемый в вашей модели. Если вам нужен принудительный перехват в хранилище данных, вы можете попробовать новый Prospective Search API . Я не пробовал, но в соответствии с документами , вы можете указать модель, запрос и URL-адрес обработчика задачи, который будет вызываться при создании новых объектов, соответствующих запросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...