@ensdmrlq said in «Неудачный и спасенный» Как я могу избавиться от этого визуального загрязнения?:
@Fox как?
просить в одной теме посмотреть другую тему
@mordor said in Как избавиться от состояния гонки?:
Тебе сначала нужно вытащить из неё данные в локальную переменную, внести изменнения в эту локальную переменную, и перезаписать глобальную переменную. Поэтому тут может возникнуть гонка, либо нужно юзать лок, чего ТС явно не хочет.
Вообще говоря можно изменить, если писать в выполнить код., то все выполниться в одном тике и не будет конфликтов, но я так обычно не делаю тк мне не кажется это красивым. И есть еще один минус, это JSON формат хранения глоб переменных и если в них много данных то это будет создавать нагрузку.
@UserTrue said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
Тебе сначала нужно вытащить из неё данные в локальную переменную, внести изменнения в эту локальную переменную, и перезаписать глобальную переменную. Поэтому тут может возникнуть гонка, либо нужно юзать лок, чего ТС явно не хочет.
Вообще говоря можно изменить, если писать в выполнить код., то все выполниться в одном тике и не будет конфликтов, но я так обычно не делаю тк мне не кажется это красивым. И есть еще один минус, это JSON формат хранения глоб переменных и если в них много данных то это будет создавать нагрузку.

Может я что-то не так пишу?
При этом ни
[[GLOBAL:LOG]]["name1"]
ни
[[GLOBAL:LOG]].name1
Не срабатывают.
@mordor said in Как избавиться от состояния гонки?:
@UserTrue said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
Тебе сначала нужно вытащить из неё данные в локальную переменную, внести изменнения в эту локальную переменную, и перезаписать глобальную переменную. Поэтому тут может возникнуть гонка, либо нужно юзать лок, чего ТС явно не хочет.
Вообще говоря можно изменить, если писать в выполнить код., то все выполниться в одном тике и не будет конфликтов, но я так обычно не делаю тк мне не кажется это красивым. И есть еще один минус, это JSON формат хранения глоб переменных и если в них много данных то это будет создавать нагрузку.
Может я что-то не так пишу?
При этом ниLOG["name1"]ни
LOG.name1Не срабатывают.
json это строка, а не объект. Вы посмотрите код действия "Лог" с использованием глобальной переменной
Так ты опять же читаешь данные переменной в локальную переменную меняешь её и записываешь заново, если бы это был глобальный список, то нужен был бы ЛОК, что бы потоки не переписывали устаревшие данные (это в случае если список не пополняется, а меняются его данные по индексам именно).
@mordor Не нужен никакой лок, этот пример демонстрирует, что нет гонки и работа происходит синхронно, в противном случае, потоки бы перетерли данные в этой переменной и это было бы видно в логе, я не просто так сделал такой вывод лога.
И тут не имеет значения список тут или строка, я сделал через строку для упрощения примера.
@UserTrue said in Как избавиться от состояния гонки?:
@mordor Не нужен никакой лок, этот пример демонстрирует, что нет гонки и работа происходит синхронно, в противном случае, потоки бы перетерли данные в этой переменной и это было бы видно в логе, я не просто так сделал такой вывод лога.
И тут не имеет значения список тут или строка, я сделал через строку для упрощения примера.
Вотже бл*тство, ты себе представить не можешь сколько раз я мудрил лок, потому что думал что данные будут пересекаться из-за этой херни. Слушай, удали линку на свой проект, там в нём модули твои. что бы никто не подмутил, мало ли.
@mordor said in Как избавиться от состояния гонки?:
Вотже бл*тство, ты себе представить не можешь сколько раз я мудрил лок, потому что думал что данные будут пересекаться из-за этой херни.
Она перетрется только, если между чтением и установкой глоб переменной будет асинхронное действие
@mordor said in Как избавиться от состояния гонки?:
@UserTrue said in Как избавиться от состояния гонки?:
@mordor Не нужен никакой лок, этот пример демонстрирует, что нет гонки и работа происходит синхронно, в противном случае, потоки бы перетерли данные в этой переменной и это было бы видно в логе, я не просто так сделал такой вывод лога.
И тут не имеет значения список тут или строка, я сделал через строку для упрощения примера.
Вотже бл*тство, ты себе представить не можешь сколько раз я мудрил лок, потому что думал что данные будут пересекаться из-за этой херни. Слушай, удали линку на свой проект, там в нём модули твои. что бы никто не подмутил, мало ли.
Я где то на форуме уже приводил пример работы с объектом в глобальной переменной в многопотоке. Каждое свойство объекта - номер потока, значение - рандомная строка. Скрипт после установки значения спал случайное время и проверял изменилось ли значение. Если изменилось, то скрипт прерывался. В итоге я гонял 100 потоков 10 минут и ни одной ошибки не возникло
@Fox said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
@UserTrue said in Как избавиться от состояния гонки?:
@mordor Не нужен никакой лок, этот пример демонстрирует, что нет гонки и работа происходит синхронно, в противном случае, потоки бы перетерли данные в этой переменной и это было бы видно в логе, я не просто так сделал такой вывод лога.
И тут не имеет значения список тут или строка, я сделал через строку для упрощения примера.
Вотже бл*тство, ты себе представить не можешь сколько раз я мудрил лок, потому что думал что данные будут пересекаться из-за этой херни. Слушай, удали линку на свой проект, там в нём модули твои. что бы никто не подмутил, мало ли.
Я где то на форуме уже приводил пример работы с объектом в глобальной переменной в многопотоке. Каждое свойство объекта - номер потока, значение - рандомная строка. Скрипт после установки значения спал случайное время и проверял изменилось ли значение. Если изменилось, то скрипт прерывался. В итоге я гонял 100 потоков 10 минут и ни одной ошибки не возникло
Буду очень благодарен, если дашь линку в личку.
@mordor said in Как избавиться от состояния гонки?:
@Fox said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
@UserTrue said in Как избавиться от состояния гонки?:
@mordor Не нужен никакой лок, этот пример демонстрирует, что нет гонки и работа происходит синхронно, в противном случае, потоки бы перетерли данные в этой переменной и это было бы видно в логе, я не просто так сделал такой вывод лога.
И тут не имеет значения список тут или строка, я сделал через строку для упрощения примера.
Вотже бл*тство, ты себе представить не можешь сколько раз я мудрил лок, потому что думал что данные будут пересекаться из-за этой херни. Слушай, удали линку на свой проект, там в нём модули твои. что бы никто не подмутил, мало ли.
Я где то на форуме уже приводил пример работы с объектом в глобальной переменной в многопотоке. Каждое свойство объекта - номер потока, значение - рандомная строка. Скрипт после установки значения спал случайное время и проверял изменилось ли значение. Если изменилось, то скрипт прерывался. В итоге я гонял 100 потоков 10 минут и ни одной ошибки не возникло
Буду очень благодарен, если дашь линку в личку.
линку в личку? В смысле ссылку на личный чат со мной? Или ты про пример скрипта?
@Fox said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
@Fox said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
@UserTrue said in Как избавиться от состояния гонки?:
@mordor Не нужен никакой лок, этот пример демонстрирует, что нет гонки и работа происходит синхронно, в противном случае, потоки бы перетерли данные в этой переменной и это было бы видно в логе, я не просто так сделал такой вывод лога.
И тут не имеет значения список тут или строка, я сделал через строку для упрощения примера.
Вотже бл*тство, ты себе представить не можешь сколько раз я мудрил лок, потому что думал что данные будут пересекаться из-за этой херни. Слушай, удали линку на свой проект, там в нём модули твои. что бы никто не подмутил, мало ли.
Я где то на форуме уже приводил пример работы с объектом в глобальной переменной в многопотоке. Каждое свойство объекта - номер потока, значение - рандомная строка. Скрипт после установки значения спал случайное время и проверял изменилось ли значение. Если изменилось, то скрипт прерывался. В итоге я гонял 100 потоков 10 минут и ни одной ошибки не возникло
Буду очень благодарен, если дашь линку в личку.
линку в личку? В смысле ссылку на личный чат со мной? Или ты про пример скрипта?
Пример скрипта, или ссылку на тему где это обсуждается, было бы реально интересно почитать.
@FastSpace said in Как избавиться от состояния гонки?:
Для этих целей есть Mysql.
Хочешь серьёзную базу. Пора отвыкать от детского сада.
Нафиг ты ее всем навязываешь? Она в 99% случаев нафиг не нужна и хватает БАСовской и в 1% тут уже на любителя, можно с БАСовской монго через дравер работать либо с другой БД хоть и mysql. С задачами которые для скриптов справится абсолютно любая БД!!!
@UserTrue said in Как избавиться от состояния гонки?:
Она в 99% случаев нафиг не нужна и хватает БАСовской и в 1% тут уже на любителя, можно с БАСовской монго через дравер работать либо с другой БД хоть и mysql. С задачами которые для скриптов справится абсолютно любая БД!!!
Хватает, но не с тем скудным набором действий из раздела "База". Ноду придеться подключать, тот же самый гемор как и Mysql.
Если выбирать между 2 геморами я выберу Mysql.
@FastSpace said in Как избавиться от состояния гонки?:
Ноду придеться подключать, тот же самый гемор как и Mysql.
Если выбирать между 2 геморами я выберу Mysql.
я же говорюю тут на любителя, кстати можно и без ноды, через shell, но там есть некоторые ограничения на объем передаваемых данных в запросах.
@mordor said in Как избавиться от состояния гонки?:
@Fox said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
@Fox said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
@UserTrue said in Как избавиться от состояния гонки?:
@mordor Не нужен никакой лок, этот пример демонстрирует, что нет гонки и работа происходит синхронно, в противном случае, потоки бы перетерли данные в этой переменной и это было бы видно в логе, я не просто так сделал такой вывод лога.
И тут не имеет значения список тут или строка, я сделал через строку для упрощения примера.
Вотже бл*тство, ты себе представить не можешь сколько раз я мудрил лок, потому что думал что данные будут пересекаться из-за этой херни. Слушай, удали линку на свой проект, там в нём модули твои. что бы никто не подмутил, мало ли.
Я где то на форуме уже приводил пример работы с объектом в глобальной переменной в многопотоке. Каждое свойство объекта - номер потока, значение - рандомная строка. Скрипт после установки значения спал случайное время и проверял изменилось ли значение. Если изменилось, то скрипт прерывался. В итоге я гонял 100 потоков 10 минут и ни одной ошибки не возникло
Буду очень благодарен, если дашь линку в личку.
линку в личку? В смысле ссылку на личный чат со мной? Или ты про пример скрипта?
Пример скрипта, или ссылку на тему где это обсуждается, было бы реально интересно почитать.
Здесь уже основное сообщили, а накатать скрипт с озвученной логикой не долго.
тестовый скрипт
@Fox said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
@Fox said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
@Fox said in Как избавиться от состояния гонки?:
@mordor said in Как избавиться от состояния гонки?:
@UserTrue said in Как избавиться от состояния гонки?:
@mordor Не нужен никакой лок, этот пример демонстрирует, что нет гонки и работа происходит синхронно, в противном случае, потоки бы перетерли данные в этой переменной и это было бы видно в логе, я не просто так сделал такой вывод лога.
И тут не имеет значения список тут или строка, я сделал через строку для упрощения примера.
Вотже бл*тство, ты себе представить не можешь сколько раз я мудрил лок, потому что думал что данные будут пересекаться из-за этой херни. Слушай, удали линку на свой проект, там в нём модули твои. что бы никто не подмутил, мало ли.
Я где то на форуме уже приводил пример работы с объектом в глобальной переменной в многопотоке. Каждое свойство объекта - номер потока, значение - рандомная строка. Скрипт после установки значения спал случайное время и проверял изменилось ли значение. Если изменилось, то скрипт прерывался. В итоге я гонял 100 потоков 10 минут и ни одной ошибки не возникло
Буду очень благодарен, если дашь линку в личку.
линку в личку? В смысле ссылку на личный чат со мной? Или ты про пример скрипта?
Пример скрипта, или ссылку на тему где это обсуждается, было бы реально интересно почитать.
Здесь уже основное сообщили, а накатать скрипт с озвученной логикой не долго.
тестовый скрипт
Спасибо