Lock кубиков

Tsuk15

Client
Регистрация
25.04.2017
Сообщения
102
Благодарностей
40
Баллы
28
Всем привет. У меня есть 5 независимых шаблонов, которые работают по API с одним сервисом. Нужно организовать lock перед post/get запросами к апи. Я понимаю, что если переписать все кодом, то можно сделать как описано здесь https://zennolab.com/discussion/threads/osobennosti-ispolzovanija-standartnyx-lockov-dlja-mnogopotoka.44524/ , но придется посидеть денек чтобы все поменять и не факт ,что не будет ошибок... Сейчас шаблоны работают стабильно. Я так понимаю стандартного кубика такого нет, хотя пару лет назад я видел такую тему в преложке. Может у кого-то есть наработки или идеи как организовать это без сторонних списков, баз данных и т.п.?)
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
ты хочешь локать пачку кубиков?
 

Tsuk15

Client
Регистрация
25.04.2017
Сообщения
102
Благодарностей
40
Баллы
28

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Когда-то подобная тема была на форуме, но, вроде, недоработанная. Могу дать идею.

Вход в лок.
Тут нужен код, который уже под одним из зенновских локов обращается к глобалке.

Если она пустая - прописывает в неё значение. Я рекомендую писать потенциальную дату освобождения от лока с запасом. На случай, если с логикой или еще чем ты ошибешься и не сможешь освободить лок, чтобы другие потоки знали, что в эту дату можно самим задать лок. Ну и после задания значения идти работать. В конце просто очистить глобалку.

Если не пустая - значит другой поток сейчас работает в этом локе. Тогда в цикле с некой паузой перепроверяем постоянно глобалку. Перепроверяем в зенновском локе. Как только станет пустой или наступит дата, которая там указана - записываем свою дату и идём работать

Такая вот идея
 

Tsuk15

Client
Регистрация
25.04.2017
Сообщения
102
Благодарностей
40
Баллы
28
Когда-то подобная тема была на форуме, но, вроде, недоработанная. Могу дать идею.

Вход в лок.
Тут нужен код, который уже под одним из зенновских локов обращается к глобалке.

Если она пустая - прописывает в неё значение. Я рекомендую писать потенциальную дату освобождения от лока с запасом. На случай, если с логикой или еще чем ты ошибешься и не сможешь освободить лок, чтобы другие потоки знали, что в эту дату можно самим задать лок. Ну и после задания значения идти работать. В конце просто очистить глобалку.

Если не пустая - значит другой поток сейчас работает в этом локе. Тогда в цикле с некой паузой перепроверяем постоянно глобалку. Перепроверяем в зенновском локе. Как только станет пустой или наступит дата, которая там указана - записываем свою дату и идём работать

Такая вот идея
Интересно, думаю мне это подойдет, спасибо)
 
Последнее редактирование:

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)