Places: Create and update only one place at a time #1664

This commit is contained in:
Michael Mayer 2021-11-22 18:30:46 +01:00
parent d432584041
commit de72abcfa4

View file

@ -71,6 +71,9 @@ func (m *Cell) Refresh(api string) (err error) {
ID: s2.NormalizeToken(m.ID),
}
cellMutex.Lock()
defer cellMutex.Unlock()
// Query geodata API.
if err = l.QueryApi(api); err != nil {
return err
@ -84,9 +87,6 @@ func (m *Cell) Refresh(api string) (err error) {
oldPlaceID := m.PlaceID
cellMutex.Lock()
defer cellMutex.Unlock()
place := Place{
ID: l.PlaceID(),
PlaceLabel: l.Label(),
@ -144,9 +144,12 @@ func (m *Cell) Find(api string) error {
}
l := &maps.Location{
ID: m.ID,
ID: s2.NormalizeToken(m.ID),
}
cellMutex.Lock()
defer cellMutex.Unlock()
if err := l.QueryApi(api); err != nil {
return err
}
@ -187,9 +190,6 @@ func (m *Cell) Find(api string) error {
m.CellPostcode = l.Postcode()
m.CellCategory = l.Category()
cellMutex.Lock()
defer cellMutex.Unlock()
if createErr := db.Create(m).Error; createErr == nil {
log.Debugf("place: added cell %s [%s]", m.ID, time.Since(start))
return nil