Как очистить "Кэш" списка без удаления данных в файле?

Nekro

Client
Регистрация
01.08.2020
Сообщения
225
Благодарностей
23
Баллы
18
Здравствуйте.

Есть список с ID в каждой строке, 100+ строк. Они постоянно попадают в кэш (данные берутся из памяти ZP). Знаю, что можно очистить список или перезагрузить ZP, чтобы он снова начал брать данные из файла, а не из своей памяти. Перезагружать - не вариант. Если чищу список, то чистятся и данные в файле (которые нужны), потому что стоит галочка "Сохранять изменения списка в файл". Список изменяется каждое выполнение.

Как очистить кэш виртуальный и при этом не затрагивая реальный файл?

Давно не работал со списками, думал это уже 100 лет назад исправили. А тут снова банальная проблема вылезла. 2 дня сижу, не могу придумать адекватного решения.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113

Nekro

Client
Регистрация
01.08.2020
Сообщения
225
Благодарностей
23
Баллы
18

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
а где кубик взятия строки ? как вообще было определено что данные старые. скрином покажи.
а то есть смутные сомнения....
 
  • Спасибо
Реакции: Nekro

Nekro

Client
Регистрация
01.08.2020
Сообщения
225
Благодарностей
23
Баллы
18
а где кубик взятия строки ? как вообще было определено что данные старые. скрином покажи.
а то есть смутные сомнения....
У меня дальше там проверка на наличие текста в файле списка. Потом уже запись ID в конец файла. Проверяю так. Удаляю ID из списка, а он при запуске всё равно его находит. Хотя его в файле уже нет. Есть какое-то решение, которое просто обнулит этот кэш?Или там ещё проверять надо изменились ли данные? На скриншотах все действия конкретно с этим списком.
105689

105690
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
Удаляю ID из списка, а он при запуске всё равно его находит. Хотя его в файле уже нет.
1. Как удаляется.
2. Как определено что его в файле нет, если он его находит. Вот каким методом ?
 
  • Спасибо
Реакции: Nekro

Nekro

Client
Регистрация
01.08.2020
Сообщения
225
Благодарностей
23
Баллы
18
1. Как удаляется.
2. Как определено что его в файле нет, если он его находит. Вот каким методом ?
1) Удаляю вручную, из текстового файла.
2) Первый скрин сообщения выше. Получаю ID из сторонних данных и проверяю его наличием в списке "Содержит текст". Далее открываю файл - ID отсутствует. Так определяю.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
1) Удаляю вручную, из текстового файла.
2) Первый скрин сообщения выше. Получаю ID из сторонних данных и проверяю его наличием в списке "Содержит текст". Далее открываю файл - ID отсутствует. Так определяю.
если вмешиваться в работу зенки руками, во внешние файлы, то естественно будут сбои. механизмов сброса кеша в зенке нет.
если нужно работать таким образом с файлом, то можно читать его напрямую. но в таком случае не гарантируется адекватная работа в многопотоке.
в принципе, если кто то еще кроме шаблона меняет файл, то тут уже есть проблемы с синхронизацией данных. фиг знает что за работа идет с файлом, может лучше базу данных заюзать ?
 
  • Спасибо
Реакции: Nekro

Nekro

Client
Регистрация
01.08.2020
Сообщения
225
Благодарностей
23
Баллы
18
если вмешиваться в работу зенки руками, во внешние файлы, то естественно будут сбои. механизмов сброса кеша в зенке нет.
если нужно работать таким образом с файлом, то можно читать его напрямую. но в таком случае не гарантируется адекватная работа в многопотоке.
в принципе, если кто то еще кроме шаблона меняет файл, то тут уже есть проблемы с синхронизацией данных. фиг знает что за работа идет с файлом, может лучше базу данных заюзать ?
Руками вмешивался для быстрого теста. Там и без рук результат такой же. Файл списка меняет 1 бот в 1 потоке. Работа с файлом простейшая. Проверить есть ли строка. Если нет- записать в конец строчку. Если есть - не трогать. Всё. База данных избыточна для моих задач.

Напрямую читать без списка - не решает проблемы. Похожие ситуации у меня возникают и в других ботах с подобными списками. Когда я ещё только начинал работать с Zennoposter.

По форуму лазил и не нашёл рабочего решения, кроме перезапуска ZP или изменения КАЖДОЙ строки в списке. Тогда он почему то не кеширует их. Какие могут быть ещё "костыли", подобно этому сообщению:

перепривяжи на другой файл и обратно
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
так если руками не будет происходить изменение файла, то зачем сейчас менять то ? :bw:
отладка работы должна производиться внутри зенки и средствами зенки. тогда и не будет расхождений в детекте данных.
 

Nekro

Client
Регистрация
01.08.2020
Сообщения
225
Благодарностей
23
Баллы
18
так если руками не будет происходить изменение файла, то зачем сейчас менять то ? :bw:
отладка работы должна производиться внутри зенки и средствами зенки. тогда и не будет расхождений в детекте данных.
Я точно так же проверял без ручного вмешательства - результат аналогичный. Расхождения явно не из-за этого.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
Я точно так же проверял без ручного вмешательства - результат аналогичный. Расхождения явно не из-за этого.
вывод... раз списки багнутые, то не надо их использовать. :bk: лично я уже очень давно не использую привязанные списки к файлу. только для вывода логов, не более.
можно работать напрямую с файлом. можно работать с БД, куча нормальных работающих решений, только с локом надо озаботиться.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 383
Благодарностей
3 306
Баллы
113

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