示例#1
0
def recache_n_events(keyword_ids, all=False):
    """
    Recache the number of events for the given keywords (by ID).

    :param all: recache all keywords instead
    :type keyword_ids: Iterable[str]
    """

    # needed so we don't empty the blasted iterator mid-operation
    keyword_ids = tuple(set(keyword_ids))
    with transaction.atomic():
        if all:
            Keyword.objects.update(n_events=0)
        else:
            # set the flag to false here, so zero-event keywords will get it too
            Keyword.objects.filter(id__in=keyword_ids).update(n_events=0, n_events_changed=False)
        for keyword_id, n_events in count_events_for_keywords(keyword_ids, all=all).items():
            Keyword.objects.filter(id=keyword_id).update(n_events=n_events)
示例#2
0
def recache_n_events(keyword_ids, all=False):
    """
    Recache the number of events for the given keywords (by ID).

    :param all: recache all keywords instead
    :type keyword_ids: Iterable[str]
    """

    # needed so we don't empty the blasted iterator mid-operation
    keyword_ids = tuple(set(keyword_ids))
    with transaction.atomic():
        if all:
            Keyword.objects.update(n_events=0)
        else:
            # set the flag to false here, so zero-event keywords will get it too
            Keyword.objects.filter(id__in=keyword_ids).update(n_events=0, n_events_changed=False)
        for keyword_id, n_events in count_events_for_keywords(keyword_ids, all=all).items():
            Keyword.objects.filter(id=keyword_id).update(n_events=n_events)