Esempio n. 1
0
def update_fulltext(self, *args):
    from weblate.trans.models import Unit
    ids = extract_batch_args(*args)
    fulltext = Fulltext()

    # Filter matching units
    units = Unit.objects.filter(id__in=[x[0] for x in ids])

    # Update index
    try:
        fulltext.update_index(units)
    except LockError as exc:
        raise self.retry(exc=exc)
Esempio n. 2
0
def delete_fulltext(self, *args):
    ids = extract_batch_args(*args)
    fulltext = Fulltext()

    units = set()
    languages = {}
    for unit, language in ids:
        units.add(unit)
        if language not in languages:
            languages[language] = set()
        languages[language].add(unit)

    try:
        fulltext.delete_search_units(units, languages)
    except LockError as exc:
        raise self.retry(exc=exc)
Esempio n. 3
0
def delete_fulltext(self, *args):
    ids = extract_batch_args(*args)
    fulltext = Fulltext()

    units = set()
    languages = defaultdict(set)
    for unit, language in ids:
        units.add(unit)
        if language is None:
            continue
        languages[language].add(unit)

    try:
        fulltext.delete_search_units(units, languages)
    except LockError:
        LOGGER.info('retrying delete batch of len %d', len(ids))
        # Manually handle retries, it doesn't work
        # with celery-batches
        sleep(10)
        for unit in ids:
            delete_fulltext.delay(*unit)
Esempio n. 4
0
def delete_fulltext(self, *args):
    ids = extract_batch_args(*args)
    fulltext = Fulltext()

    units = set()
    languages = defaultdict(set)
    for unit, language in ids:
        units.add(unit)
        if language is None:
            continue
        languages[language].add(unit)

    try:
        fulltext.delete_search_units(units, languages)
    except LockError:
        LOGGER.info('retrying delete batch of len %d', len(ids))
        # Manually handle retries, it doesn't work
        # with celery-batches
        sleep(10)
        for unit in ids:
            delete_fulltext.delay(*unit)
Esempio n. 5
0
def delete_fulltext(self, *args):
    ids = extract_batch_args(*args)
    fulltext = Fulltext()

    units = set()
    languages = {}
    for unit, language in ids:
        units.add(unit)
        if language is None:
            continue
        if language not in languages:
            languages[language] = set()
        languages[language].add(unit)

    try:
        fulltext.delete_search_units(units, languages)
    except LockError:
        # Manually handle retries, it doesn't work
        # with celery-batches
        sleep(10)
        for unit in ids:
            delete_fulltext.delay(*unit)