Try this style of update tasks of the establishments

This commit is contained in:
evgeniy-st 2019-11-15 11:56:16 +03:00
parent b8df164369
commit ff006eb6fb

View File

@ -4,11 +4,14 @@ import logging
from celery import shared_task
from celery.schedules import crontab
from celery.task import periodic_task
from django.core import management
from django_elasticsearch_dsl.management.commands import search_index
from django_elasticsearch_dsl.registries import registry
from establishment import models
from location.models import Country
from search_indexes.documents.establishment import EstablishmentDocument
logger = logging.getLogger(__name__)
@ -25,7 +28,18 @@ def recalculate_price_levels_by_country(country_id):
establishment.recalculate_price_level(low_price=country.low_price,
high_price=country.high_price)
# @periodic_task(run_every=crontab(minute=59))
# def rebuild_establishment_indices():
# management.call_command(search_index.Command(), action='populate', models=[models.Establishment.__name__],
# force=True)
@periodic_task(run_every=crontab(minute=59))
def rebuild_establishment_indices():
management.call_command(search_index.Command(), action='populate', models=[models.Establishment.__name__],
force=True)
def update_establishment_indices():
try:
doc = registry.get_documents([models.Establishment]).pop()
except KeyError:
pass
else:
qs = doc().get_indexing_queryset()
doc().update(qs)