reduce db roundtrip in update_matching
This commit is contained in:
parent
25c20f2190
commit
e09fd09bdf
1 changed files with 30 additions and 20 deletions
|
@ -1,5 +1,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
import json
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from celery.task import task
|
from celery.task import task
|
||||||
|
|
||||||
|
@ -19,16 +21,20 @@ def update_matching_events(id):
|
||||||
a.events.add(Event.get_or_create(a.value))
|
a.events.add(Event.get_or_create(a.value))
|
||||||
for e in a.events.all():
|
for e in a.events.all():
|
||||||
e.update_matches()
|
e.update_matches()
|
||||||
ids = [e['id'] for e in Event.objects.all().values('id')]
|
|
||||||
for i in ids:
|
names = {}
|
||||||
try:
|
for n in Event.objects.all().values('id', 'name', 'alternativeNames'):
|
||||||
e = Event.objects.get(pk=i)
|
names[n['id']] = [n['name']] + json.loads(n['alternativeNames'])
|
||||||
for name in [e.name] + list(e.alternativeNames):
|
value = a.value.lower()
|
||||||
if name.lower() in a.value.lower():
|
update = []
|
||||||
e.update_matches()
|
for i in names:
|
||||||
|
for name in names[i]:
|
||||||
|
if name.lower() in value:
|
||||||
|
update.append(i)
|
||||||
break
|
break
|
||||||
except Event.DoesNotExist:
|
if update:
|
||||||
pass
|
for e in Event.objects.filter(id__in=update):
|
||||||
|
e.update_matches()
|
||||||
|
|
||||||
@task(ignore_resulsts=True, queue='default')
|
@task(ignore_resulsts=True, queue='default')
|
||||||
def update_matching_places(id):
|
def update_matching_places(id):
|
||||||
|
@ -43,16 +49,20 @@ def update_matching_places(id):
|
||||||
a.places.add(Place.get_or_create(a.value))
|
a.places.add(Place.get_or_create(a.value))
|
||||||
for p in a.places.all():
|
for p in a.places.all():
|
||||||
p.update_matches()
|
p.update_matches()
|
||||||
ids = [e['id'] for e in Place.objects.all().values('id')]
|
|
||||||
for i in ids:
|
names = {}
|
||||||
try:
|
for n in Place.objects.all().values('id', 'name', 'alternativeNames'):
|
||||||
e = Place.objects.get(pk=i)
|
names[n['id']] = [n['name']] + json.loads(n['alternativeNames'])
|
||||||
for name in [e.name] + list(e.alternativeNames):
|
value = a.value.lower()
|
||||||
if name.lower() in a.value.lower():
|
update = []
|
||||||
e.update_matches()
|
for i in names:
|
||||||
|
for name in names[i]:
|
||||||
|
if name.lower() in value:
|
||||||
|
update.append(i)
|
||||||
break
|
break
|
||||||
except Place.DoesNotExist:
|
if update:
|
||||||
pass
|
for e in Place.objects.filter(id__in=update):
|
||||||
|
e.update_matches()
|
||||||
|
|
||||||
@task(ignore_resulsts=True, queue='default')
|
@task(ignore_resulsts=True, queue='default')
|
||||||
def update_item(id):
|
def update_item(id):
|
||||||
|
|
Loading…
Reference in a new issue