Обновление списков в Zennoposter

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
Давняя проблема с кэшированием списков, решение которой так и не появилось за много лет.

Вводные данные для примера:

* Шаблон - чекер аккаунтов. На входе файл "аккаунты для чека.txt", на выходе 3 файла для сегментации учеток (с номером.txt, без номера.txt, без почты.txt).
* Имеется 20 отдельных позиций аккаунтов, которые нужно перечекать.

1) Добавляю первый список аккаунтов в файл "аккаунты для чека.txt". Шаблон стартует, завершает свою работу, на выходе я получаю 3 файла с данными - все как положено.

2) Потом я чищу файлы и загружаю следующий список в "аккаунты для чека.txt" для последующей проверки.

Но проблема в том, что данные с 1 списка закэшированы и при следующем запуске они восстанавливаются и перемешиваются с новыми данными.

Сейчас приходится перезапускать ZP после каждого чека, чтобы очистился кэш. А когда параллельно и другие шаблоны работают, то приходится их останавливать... Или удалять шаблон, потом его снова добавлять. И так условно 20 раз подряд.

Хотя можно было бы сделать функцию в ZP - "Сбросить кэш списков".

104292

При наличии такой функции можно было бы перезаливать файлы на пустые, сбрасывать кэш и продолжать работу без рестарта ZP.

Конечно, можно продумать механику в шаблоне, чтобы все 20 списков проверялись, для каждого создавать отдельные папки, но это далеко не всегда удобно.

В PM похожая проблема. Работаем мы с одним списком аккаунтов, дебажим шаблон. Потом нам понадобилось заменить файл для работы с другими аккаунтами. Но данные первого списка кэшируются и восстанавливаются. Опять же, приходится рестартить PM.
 
Последнее редактирование:

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
Бд не предлагайте, это не всегда уместно и удобно. Хотелось бы со списками нормально работать без лишних манипуляций.

Да и пока я слабо представляю правильную связку для чекера в бд.

На входе все равно будет txt файл, чтобы его импортировать в бд.

И на выходе нужно будет экспортировать данные из БД по 3м спискам.

В этой схеме все равно присутствуют списки и их долбанное кэширование).

Если вы видите оптимальное решение этой проблемы, то будет интересно послушать)

У меня задача простая:

1) Закинуть аккаунты в список, прочекать, получить 3 списка.

2) Потом заменить все 4 файла на пустые

И таким образом, без перезапуска ZP прочекать несколько списков по очереди.
 
Последнее редактирование:

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
Вышепредложенная идея с кнопкой "сбросить кэш списков" должна решить эту проблему. Но не знаю смогут ли, и станут ли вообще что-то делать разработчики. Еще в году 2016-2017 я помню похожие темы, с тех пор ничего не изменилось.
 

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
Можно прикинуть такой вариант:

1. Создаем папку "Аккаунты". Туда добавляем список с рандомным именем, в котором содержатся аккаунты для чека.
2. Шаблон получает имя списка из папки и привязывается к этому файлу.
3. На выходе папка "Аккаунты после чека", в которой создается подпапка с названием списка из пункта 1. И в ней 3 файла (с номером, без номера, без почты).

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

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 662
Благодарностей
919
Баллы
113
Но проблема в том, что данные с 1 списка закэшированы и при следующем запуске они восстанавливаются и перемешиваются с новыми данными.
не может быть ошибки? попробуйте перед добавлением новых данных в список добавить кубик очиски списка... впервые слышу о каком либо кеше.. как правило наоборот все стирается в ноль без спроса)) похоже на ошибку в логике..
 

Phoenix78

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

Phoenix78

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

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
не может быть ошибки? попробуйте перед добавлением новых данных в список добавить кубик очиски списка... впервые слышу о каком либо кеше.. как правило наоборот все стирается в ноль без спроса)) похоже на ошибку в логике..
Как вы себе это представляете?) Чистим список, потом добавляем? И так в многопотоке? Будет 0 данных в списках.

Не знаю почему вы это впервые слышите, списки очевидно кэшируются. Данные добавляются сначала в кэш и только через какое-то время в список. Это сделано для многопотока, чтобы потоки не конфликтовали и небыло частой записи в тот же список.

В какой логике может быть ошибка? Условно, взяли строку со списка 1, добавили в список 2. В чем ошибка то?)
 

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
Можно для теста попробовать накатать шаблон с логикой: взять строку с 1 списка, добавить во второй. Дождаться завершения работы шаблона. Потом перезалить вручную эти 2 файла на пустые, добавить новые данные в список 1 и запустить шаблон снова. Он вернет содержание прошлых списков и перепутает данные.
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 662
Благодарностей
919
Баллы
113
В какой логике может быть ошибка? Условно, взяли строку со списка 1, добавили в список 2. В чем ошибка то?)
100% ошибка в логике. даже то, что вы используете списки для работы в многопотоке -уже ошибка.
скиньте часть шаблона, где чего там перемещает - массово проверим, если реально воспроизводится - массово проголосуем за фичу.
 

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
бросай эти списки... база данных мастхэв.
Я тебе верю. Но предложи грамотную схему с бд)). Мне бы хотя бы принцип понять. Придется заливать список в бд, чекать, а потом импортировать по спискам? - так себе механика.
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 662
Благодарностей
919
Баллы
113

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
скиньте часть шаблона, где чего там перемещает - массово проверим, если реально воспроизводится - массово проголосуем за фичу.
Тут нечего скидывать, я же написал выше как можно протестировать. Всего 2 кубика и 2 списка создать.

В моем шаблоне условно:
1. Получить строку
2. Гет запрос
3. Свич с распределением по спискам на основе данных гет запроса.

ставить в соседнем столбце статус - да, нет, хз
Не проблема сделать таблицу со столбцом статуса, типом аккаунта итп. Также сделать лок на многопотоке итп. Тут речь немного о другом идет.

При любых условиях есть список 1 с входными данными. Если задействовать бд, то нужно импортировать список и распределять в таблице. Потом мы чекаем и присваиваем статусы в еще 1 столбец. И на выходе мне все равно нужно получить именно 3 txt списка, так как прочеканные аккаунты нужно заливать в магазин, а не просто хранить в бд. В этой схеме все равно списки присутствуют с их долбанным кешированием (как я и говорил выше).

Опишите как вы видите механику работы по пунктам, я хочу понять. С запуска шаблона до его завершения.
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 662
Благодарностей
919
Баллы
113
И на выходе мне все равно нужно получить именно 3 txt списка
закончили чекать - делате выборку статуса Да (данные попадают в переменную), дальше сохраняете их в файл не используя списков зеннопостера.
 
  • Спасибо
Реакции: FreddyKrueger

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
закончили чекать - делате выборку статуса Да (данные попадают в переменную), дальше сохраняете их в файл не используя списков зеннопостера.
Вот теперь понятно. Буду думать, спасибо за подсказку).

Но все равно, это не отменяет наличия проблемы, описанной в стартовом посте. Альтернативные варианты можно придумать, а из коробки не работает, как надо.
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 662
Благодарностей
919
Баллы
113
Но все равно, это не отменяет наличия проблемы
я даже погулил по форуму - нет такой проблемы. что-то не так делаете. иначе бы были сообщения. ну и я совсем не давно перешел на базы данных, до этого работал со списками, постоянно что-то кудато перекладывал и брал новые - не было подобного. если я сложу два кубика под ваше ТЗ - скорее всего они будут сильно отличатся от ваших, поэтому если хотите решения или подтверждения - лучше просто скопировать нужный блок и дать погонять массово (что там секретного то может быть?).
 

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
я даже погулил по форуму - нет такой проблемы. что-то не так делаете. иначе бы были сообщения. ну и я совсем не давно перешел на базы данных, до этого работал со списками, постоянно что-то кудато перекладывал и брал новые - не было подобного. если я сложу два кубика под ваше ТЗ - скорее всего они будут сильно отличатся от ваших, поэтому если хотите решения или подтверждения - лучше просто скопировать нужный блок и дать погонять массово (что там секретного то может быть?).
Сообщения есть, просто их нужно правильно искать, все формулируют по-разному.

Сейчас воспроизводил на тестовом шаблоне (там всего 2 кубика)

Кубик 1 - взять строку с удалением со "списка-1.txt" и добавить в переменную
Кубик 2 - добавить переменную в "список-2.txt"

104296

(Проще говоря, берем строку с одного списка и добавляем в другой)

1) После первого выполнения шаблона "список-1.txt" соответственно пустой.
2) Далее мы перезаливаем (копируем с заменой) "список-1.txt", в котором 600 строк.
3) Запускаем шаблон и ZP выдает, что строк нет. Так как закэширован пустой файл. И после замены файла список не обновился в ZP.

104294

Получилось немного не то, чего я ожидал, но принцип понятен.

Дело в том, что при ручной замене файла - ZP его не обнаруживает и работает по кэшированной версии прошлой версии файла.

В своем чекере я заменяю файлы на пустые после каждого прогона. Потом добавляю вручную строки в файл "аккаунты для чека.txt".

Получается, что при повторном старте - ZP подтягивает прошлые кэшированные файлы. И выходит, что я записываю новые строки поверх старых.

попробуйте перед добавлением новых данных в список добавить кубик очиски списка...
Я вас изначально неверно понял, но вы правильную мысль сказали. Вместо того, чтобы перезаливать файлы на пустые, как вариант сделать отдельный шаблон, который чистит списки. Таким образом ZP будет работать с привязанными файлами без проблем с кэшем.

Все же, касяк есть. В идеале список должен обновляться при старте шаблона, но этого не происходит. Если файл перезалить, то ZP его теряет. Замененный файл начинает работать только после рестарта ZP.

Сейчас пока буду чистить списки отдельным шаблоном. Это костыльное решение, но лучше чем рестартить ZP каждый раз.
 

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63

Deisler

Client
Регистрация
26.10.2019
Сообщения
482
Благодарностей
183
Баллы
43
Тоже никогда не встречал такой проблемы.

99% что проблема в логике проекта. А именно - в настройках списка вы не поставили галочку сохранять изменения списка. Тем самым при начале работы шаблона данные загружаются в "виртуальный список" и строки с удалением берутся из виртуального списка, а не из реального.

Если проблема не в этом, то я бы попробовал следующие варианты для решения:
1. Установить acelpad или notepad, если ещё не установлены. Скорее всего это и есть решение вашей проблемы, но если нет, то костылями (2 и 3 пункт)
2. По завершению работы очищать список с которым отработали
3. В начале проекта дополнительно привязывать список к нужному файлу
 

Akcium

Client
Регистрация
16.12.2020
Сообщения
210
Благодарностей
98
Баллы
28
Нет, проблема такая есть, тоже бывало, помимо перезапуска помогало переименование файла.

В списках все как положено настроено с привязками и т.д.
 
  • Спасибо
Реакции: FreddyKrueger

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Не спорь :bk:
У кого то нет кеша на список, у кого то есть , все мы разные ;-)

Можно напрямую читать данные из файла и писать в них. без привязки с списку в зенке.
читаешь файл (если большой, то читаешь часть файла) кидаешь в базу задания.
работаешь с базой.
когда будет пусто по заданиям в базе, выгружаешь результат в файлы. (без списков) (в принципе можно результат после каждой интерации скидывать, но мне удобнее разом)
чекаешь нет ли данных во входном файле. если нет, то выход. если есть, то повтор с первого пункта.

у меня так работает. списки я использую только те которые в памяти (без привязки к файлу, у таких кеш не подключается)

если не нравиться база, можно работать в памяти. делаешь в глобальной переменной список/таблицу (или вообще свою сложную структуру) и так же через чтение файла напрямую, читаешь и складываешь туда.
потом выгружаешь.
 
  • Спасибо
Реакции: FreddyKrueger

Deisler

Client
Регистрация
26.10.2019
Сообщения
482
Благодарностей
183
Баллы
43
Нет, проблема такая есть, тоже бывало, помимо перезапуска помогало переименование файла.

В списках все как положено настроено с привязками и т.д.
Когда у вас была такая проблема, был ли установлен acelpad или notepad ? Или только стандартный блокнот ?
 

Akcium

Client
Регистрация
16.12.2020
Сообщения
210
Благодарностей
98
Баллы
28

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
653
Благодарностей
465
Баллы
63
Тоже никогда не встречал такой проблемы.

99% что проблема в логике проекта. А именно - в настройках списка вы не поставили галочку сохранять изменения списка. Тем самым при начале работы шаблона данные загружаются в "виртуальный список" и строки с удалением берутся из виртуального списка, а не из реального.

Если проблема не в этом, то я бы попробовал следующие варианты для решения:
1. Установить acelpad или notepad, если ещё не установлены. Скорее всего это и есть решение вашей проблемы, но если нет, то костылями (2 и 3 пункт)
2. По завершению работы очищать список с которым отработали
3. В начале проекта дополнительно привязывать список к нужному файлу
Да нету проблем в логике). Я выше скинул пример элементарно с 2-мя кубиками, там не где накасячить. Стоит галочка, стоит нодпад++. Как я уже говорил - зенка перестает видеть список после ручной замены файла и продолжает работать с кэшированной версией. Проблема есть, осталось решить как лучше ее обойти, ибо разработчики это не исправят. Да и смысл им исправлять, если некоторые даже не слышали про кэш списков). В этой теме дали несколько рабочих идей, всем спасибо)
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 662
Благодарностей
919
Баллы
113
Я выше скинул пример элементарно с 2-мя кубиками, там не где накасячить.
не пробовали добавить кубик "привязать список к файлу"? по сути он должен сбрасывать текущий "кеш", при этом работа с данными будет продолжатся..
 
  • Спасибо
Реакции: FreddyKrueger

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