2016-10-18 8 views
2

Есть ли способ реализовать что-то подобное в loopback?Loopback: чтение и обновление Atomic

LOCK 
READ 
INCREMENT 
UNLOCK 

Я хотел бы сохранить счетчики в качестве значений базы данных, каждая клавиша представляет собой счетчик (или установка), и они не должны обращаться мои многочисленные запросы одновременно.

Также это должно работать для локальных запросов тоже (не remoteHooks)

Благодарности

ответ

1

Если вы используете разъем MongoDB, это поддерживается extended operators.

MyModel.updateAll(
    { id: 123' }, 
    { '$inc': { myproperty: 1 }}, // increment myproperty by 1 
    { allowExtendedOperators: true } 
); 

В противном случае, вы можете использовать transactions в качестве обходного для некоторых разъемов.

+1

Прохладный, спасибо! Я проверю это завтра – Mc128k

+0

Нет, не работает должным образом. Значение обновляется, но я не могу читать содержимое в любом месте. Конечно, я могу запустить еще один запрос, но, будучи асинхронным, я не могу быть уверенным, что между тем были отправлены другие запросы. – Mc128k

+0

Что значит, что вы не можете читать содержимое в любом месте? И используете ли вы расширенные операторы или транзакции? – Overdrivr