.. | ||
worker | ||
docker-compose.yaml | ||
README.md | ||
rsem.go | ||
rsem_test.go |
rsem
Реализуйте семафор используя redis. В отличии от semaphore в shared memory, такой семафор можно использовать в распределённой системе, чтобы синхронизировать независимые процессы.
Ваша реализация должна обладать свойством robustness, это значит - семафор должен автоматически отпускаться, если процесс держаший его умер (тесты предполагают, что это происходит через секунду после смерти процесса). Чтобы реализовать это свойство, используйте TTL на ключи.
В вашей реализации может потребоваться атомарно выполнить набор команд. Для этого можно использовать транзакции или lua скрипт