def __notify_feature_subscribers_of_changes(self, is_update):
    'Async notifies subscribers of new features and property changes to features by\n       posting to a task queue.'
    changed_props = []
    for (prop_name, prop) in self.properties().iteritems():
        new_val = getattr(self, prop_name, None)
        old_val = getattr(self, ('_old_' + prop_name), None)
        if (new_val != old_val):
            changed_props.append({'prop_name': prop_name, 'old_val': old_val, 'new_val': new_val})
    payload = json.dumps({'changes': changed_props, 'is_update': is_update, 'feature': self.format_for_template(version=2)})
    queue = taskqueue.Queue()
    task = taskqueue.Task(method='POST', url='/tasks/email-subscribers', target='notifier', payload=payload)
    queue.add(task)
    queue = taskqueue.Queue()
    task = taskqueue.Task(method='POST', url='/tasks/send_notifications', target='notifier', payload=payload)
    queue.add(task)
Async notifies subscribers of new features and property changes to features by
posting to a task queue.
def __notify_feature_subscribers_of_changes(self, is_update):
    'Async notifies subscribers of new features and property changes to features by\n       posting to a task queue.'
    changed_props = []
    for (prop_name, prop) in self.properties().iteritems():
        new_val = getattr(self, prop_name, None)
        old_val = getattr(self, ('_old_' + prop_name), None)
        if (new_val != old_val):
            changed_props.append({'prop_name': prop_name, 'old_val': old_val, 'new_val': new_val})
    payload = json.dumps({'changes': changed_props, 'is_update': is_update, 'feature': self.format_for_template(version=2)})
    queue = taskqueue.Queue()
    task = taskqueue.Task(method='POST', url='/tasks/email-subscribers', target='notifier', payload=payload)
    queue.add(task)
    queue = taskqueue.Queue()
    task = taskqueue.Task(method='POST', url='/tasks/send_notifications', target='notifier', payload=payload)
    queue.add(task)