Есть приложение на node js которое запускаю через cluster. В дочерних процессах есть некий request к внешнему апи, его я хочу делать через proxy
Я пытаюсь реализовать систему очередей прокси, то есть по очереди использовать каждую. Я сделал массив из прокси и записываю номер прокси в redis. При следующем запросе беру этот номер увеличиваю на один и беру следующую прокси. Но допустим ситуацию, у нас приходит 2 запроса одновременно на дочерние процессы, они оба обращаются к redis и получают одно и тоже значение, следовательно прокси будет использована 2 раза подряд. Как правильно решить эту проблему, потому что транзакции в redis не дают возможность блокировать поток чтения?
redis.io/commands/set
The command SET resource-name anystring NX EX max-lock-time is a simple way to implement a locking system with Redis.
A client can acquire the lock if the above command returns OK (or retry after some time if the command returns Nil), and remove the lock just using DEL.