В Redis есть замечательный алгоритм
Redlock, позволяющий надёжно реализовать
mutex (взаимное исключение) на распределённых хранилищах. Но он основан на операции вставки-если-ключа-нет (
SET ... NX
).
Возник вопрос: можно ли реализовать mutex на базе
storage ВКонтакте, где есть только операции
set( key, value)
и
get(key)
? Есть метод
utils.getServerTime() для получения серверного времени с точностью до секунд.
Задача скоординировать между собой несколько независимых агентов, чтобы в любой момент времени кто-то один из них брался за задачу. Единственная связь у них между собой – через это хранилище ВК.