Обновить
16K+
2
Исходный Код@codesrc

Разработчик

9
Рейтинг
3
Подписчики
Отправить сообщение

Добрый день, спасибо за ваше мнение и дополнение.

Спасибо большое за комментарий!

По поводу механизма лока и куба. На уровне конфигурации компонента Symfony Lock настраивается хранилище (Memcached, PostgreSQL, Redis и т. д.), где лежит информация о локе, после чего мы создаем лок, который будет использовать сконфигурированное хранилище (https://github.com/Codesrc-public-ru/Examples/blob/main/Symphony%20Lock/ExternalServiceTokenProvider.php#L17).

В нашем случае используется кластерный Memcached, поэтому все поды понимают, есть в данный момент лок или нет.

По поводу поведения. Исключение при попытке взять занятый лок не бросается. В примере (https://github.com/Codesrc-public-ru/Examples/blob/main/Symphony%20Lock/ExternalServiceTokenProvider.php#L19) у нас просто блокируется выполнение и ожидается освобождение лока. Также у лока есть TTL на случай падения пода или других непредвиденных ситуаций - это позволяет избежать вечного дедлока.

Ну да, и в этом нет ничего плохого - если гипотеза не выстрелит, не придется переписывать нативный код. WebView как раз и спасает на этапе проверки, пока непонятно, стоит ли вообще вкладываться в полноценную мобильную разработку.

Информация

В рейтинге
747-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Фронтенд разработчик
Git
SQL
Python
PostgreSQL
Docker
MySQL
Английский язык
Linux
PHP