|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
|
Как правильно хранить глобальную переменную04.03.2025, 09:49. Показов 2737. Ответов 47
Метки нет (Все метки)
Здравствуйте. Такая дилемма - есть телеграмм бот, при его запуске я объявляю пустой ассоциативный массив. В процессе работы массив наполняется данными. Но так как бот в стадии активной разработки, я его постоянно перезапускаю. Соответственно с каждым перезапуском все данные , накопленные в массиве теряются. Есть ли способ объявить массив вне файла с текстом бота, потом с помощью какого-нибудь include (если такое есть) включать в бот уже наполненный (ну или еще ненаполненный) массив. Т.е. как сделать, чтобы переменная жила отдельно от программы ее использующей?
0
|
|
| 04.03.2025, 09:49 | |
|
Ответы с готовыми решениями:
47
Как правильно объявить глобальную переменную? Как описать глобальную переменную Передать переменную из обработчика событий как глобальную |
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 04.03.2025, 09:50 | |
|
бот жеж на серваке критутиццо? вот там и храни
0
|
|
|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
||
| 04.03.2025, 09:58 [ТС] | ||
|
тем более бот (особенно в моем исполнении) в любой момент может очень неожиданно упасть и все, что можно было бы записать при его корректном завершении будет утеряно. А записывать в текст каждый раз при добавлении в массив или удалении из него какой то отдельной пары "ключ-значение" - это уже (такое себе)^2
0
|
||
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 04.03.2025, 10:08 | |
|
для этого люди придумали базы данных
Добавлено через 45 секунд если совсем заморочится - брокеры сообщений
0
|
|
|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
|
| 04.03.2025, 10:21 [ТС] | |
|
А есть ли более простые методы? а то это как для доставки из магазина до дома использовать ракету и всю ракетостроительную отрасль, когда можно просто на велосипеде довезти
0
|
|
|
1288 / 1261 / 187
Регистрация: 21.01.2024
Сообщений: 5,797
|
|
| 04.03.2025, 10:25 | |
|
Если программа падает/завершается, то в памяти ничего не остается. Поэтому и хранят такие данные во внешних хранилищах - просто файлах или БД, если данных много.
Что такого просто записывать и считывать файл с json?
1
|
|
|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
||
| 04.03.2025, 10:37 [ТС] | ||
|
Добавлено через 3 минуты а как кстати на js создать БД, представляющую собой ассоциативный массив?
0
|
||
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||
| 04.03.2025, 10:41 | ||
|
Добавлено через 1 минуту для ноды можно поискать библу для локальной бд Добавлено через 45 секунд https://www.npmjs.com/package/db-local
1
|
||
|
3844 / 1696 / 431
Регистрация: 14.03.2022
Сообщений: 4,336
|
||
| 04.03.2025, 10:47 | ||
Сообщение было отмечено pincet как решение
РешениеСамым лучшим вариантом, как писал камрад voraa - является БД. Возможно простенькая и мало затратная по ресурсам, та же NeDB...https://rukovodstvo.net/posts/id_1346/ Если даже такое сложно - остаются файлы, в которые будут записываться данные. Вопрос только в их количестве и внутреннем формате хранения самих данных. Зная что именно тебе нужно - можно предложить какие-то приемлемые варианты... Добавлено через 3 минуты granit201z, например та же Firebase предоставляет бесплатный вариант небольшого хранилища данных... https://firebase.google.com
1
|
||
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||
| 04.03.2025, 11:05 | ||
|
0
|
||
|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
||
| 04.03.2025, 11:12 [ТС] | ||
|
... ну и при каждом изменении города i-м пользователем вести "чтения-записи" файла, при условии что количество пользователей достигнет расчетного значения - боюсь упадет не только бот, но и мой ноут)
0
|
||
|
1288 / 1261 / 187
Регистрация: 21.01.2024
Сообщений: 5,797
|
|||
| 04.03.2025, 11:28 | |||
|
Есть методы JSON.stringify и JSON.parse, которые могут переводить объекты в строку json и обратно. Добавлено через 1 минуту
0
|
|||
|
3844 / 1696 / 431
Регистрация: 14.03.2022
Сообщений: 4,336
|
|
| 04.03.2025, 11:31 | |
|
0
|
|
|
1288 / 1261 / 187
Регистрация: 21.01.2024
Сообщений: 5,797
|
|||
| 04.03.2025, 11:38 | |||
|
0
|
|||
|
3844 / 1696 / 431
Регистрация: 14.03.2022
Сообщений: 4,336
|
||||
| 04.03.2025, 11:41 | ||||
|
Если использовать файлы...
Саму структуру пользователь - город - можно хранить в виде объекта в json-файле. Перезаписывать его каждый раз при появлении нового пользователя или смены города пользователем...![]() Добавлено через 2 минуты NeDB - если нужно NoSQL...
0
|
||||
|
1288 / 1261 / 187
Регистрация: 21.01.2024
Сообщений: 5,797
|
|
| 04.03.2025, 11:42 | |
|
0
|
|
|
3844 / 1696 / 431
Регистрация: 14.03.2022
Сообщений: 4,336
|
|
| 04.03.2025, 11:45 | |
|
granit201z, вместо "рассказов" о данных - лучше показывать их структуру.
Для ее описания можно использовать довольно удобный ресурс https://sql.toad.cz/?
0
|
|
|
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 62
|
||
| 04.03.2025, 11:53 [ТС] | ||
|
0
|
||
|
3844 / 1696 / 431
Регистрация: 14.03.2022
Сообщений: 4,336
|
||
| 04.03.2025, 11:58 | ||
![]() Тогда это точно нужно на БД переходить. Я-то думал что публикации просто "складываются" при получении и просто показываются некому пользователю в той последовательности, какой они пришли. Если же предполагается более сложная работа с ними, как то: - изменение "порядка следования" - поиск Это уже задачи СУБД.
0
|
||
|
1288 / 1261 / 187
Регистрация: 21.01.2024
Сообщений: 5,797
|
||
| 04.03.2025, 11:58 | ||
|
Не могу предположить, насколько большие файлы, не зная, что в них - сами публикации или только url, сколько их (актуальных и старых)
0
|
||
| 04.03.2025, 11:58 | |
|
Помогаю со студенческими работами здесь
20
Завести глобальную переменную в JS Обработчик потока не видит глобальную переменную В теле функции изменить глобальную переменную
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|