ZP обновляет списки с задержкой в несколько часов

Atlas

Client
Регистрация
16.02.2014
Сообщения
131
Благодарностей
8
Баллы
18
Всем привет.
ZP стоит на сервере, работает в 25 потоков, берет данные из списков, сохраняет данные в списки.
Через какое-то время списки в проводнике перестают обновляться. При этом шаблон продолжает работать без ошибок, т.е судя по логу так же берет/записывает данные в списки. Я останавливаю шаблон, и через несколько часов списки обновляются в проводнике. С чем это может быть связано?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
@Atlas В Проводнике обновляете содержимое папки (кнопка F5)? Файлы-списки имеют время обновления свежее или устаревшее на несколько часов?
 

Atlas

Client
Регистрация
16.02.2014
Сообщения
131
Благодарностей
8
Баллы
18
@Atlas В Проводнике обновляете содержимое папки? Файлы-списки имеют время обновления свежее или устаревшее на несколько часов?
Вот вчерашний пример.
15:30 - списки перестали обновляться. Т.е дата изменения в проводнике у всех списков - 15:30.
В 16:30 я это заметил и остановил шаблон.
В 17:30 списки обновились, обновилась и дата изменения.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Вот вчерашний пример.
15:30 - списки перестали обновляться. Т.е дата изменения в проводнике у всех списков - 15:30.
В 16:30 я это заметил и остановил шаблон.
В 17:30 списки обновились, обновилась и дата изменения.
Данные в списках тоже добавились именно в 17:30?
Проект вы сами писали? Нет там каких то длительных циклов, на которые он может выйти при каких то обстоятельствах?
 

Atlas

Client
Регистрация
16.02.2014
Сообщения
131
Благодарностей
8
Баллы
18
Данные в списках тоже добавились именно в 17:30?
Проект вы сами писали? Нет там каких то длительных циклов, на которые он может выйти при каких то обстоятельствах?
Да, тоже в 17:30.
Проект сам писал. Циклы есть, но максимум повторений 10, потом дальше идет. Т.е зашел в цикл, выполнил 10 раз, пошел дальше. При этом сам шаблон не зациклен.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Да, тоже в 17:30.
Проект сам писал. Циклы есть, но максимум повторений 10, потом дальше идет. Т.е зашел в цикл, выполнил 10 раз, пошел дальше. При этом сам шаблон не зациклен.
Списки не были открыты в этот момент в каких то программах-просмотрщиках?
 

Atlas

Client
Регистрация
16.02.2014
Сообщения
131
Благодарностей
8
Баллы
18

ex3maL

Client
Регистрация
22.05.2020
Сообщения
359
Благодарностей
267
Баллы
63
Смотря какие списки
Обычно на пару тыс строк обновялется за несколько секунд
А если ты списки запихал по 30-50-100мб
Ну как бы тогда все ясно)))
 
  • Спасибо
Реакции: Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113

Atlas

Client
Регистрация
16.02.2014
Сообщения
131
Благодарностей
8
Баллы
18
Смотря какие списки
Обычно на пару тыс строк обновялется за несколько секунд
А если ты списки запихал по 30-50-100мб
Ну как бы тогда все ясно)))
Разные списки, есть банально proxy.txt, где 25 строк. Есть result.txt, там да, больше 100 мб. Но зависает обновление одновременно и у proxy.txt и у result.txt. И отвисает тоже одновременно.
В Настройки - Выполнение так настроено?

Посмотреть вложение 81126
Да, так.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Разные списки, есть банально proxy.txt, где 25 строк. Есть result.txt, там да, больше 100 мб. Но зависает обновление одновременно и у proxy.txt и у result.txt. И отвисает тоже одновременно.

Да, так.
Получается что шаблон спотыкается о список-монстр и там начинает подвешиваться.
Возможный выход из ситуации - это разбивать result.txt на подсписки (подфайлы), динамически дробить их на конкретное кол-во строк, когда проблем не возникает, например перед записью результатов проверять в шаблоне кол-во строк и если оно превысило определенный порог, то создавать новый txt привязывать его к списку и в него записывать данные, а старый предварительно перемеименовывать (дописывать дату-время к имени) и перемещать в другую папку, либо просто перемещать в другую папку с уже другим именем, а result.txt очищать.
 
Последнее редактирование:
  • Спасибо
Реакции: ex3maL и Atlas

ex3maL

Client
Регистрация
22.05.2020
Сообщения
359
Благодарностей
267
Баллы
63
Разные списки, есть банально proxy.txt, где 25 строк. Есть result.txt, там да, больше 100 мб. Но зависает обновление одновременно и у proxy.txt и у result.txt. И отвисает тоже одновременно.

Да, так.
Не делай так
Если большие списки то переходи на базы данных
Там обработка милисекунды занимает
Лучше чем годами ждать список на 100+ мб
 
  • Спасибо
Реакции: Atlas

Shogo

Client
Регистрация
07.04.2015
Сообщения
474
Благодарностей
100
Баллы
43
У меня недавно была похожая проблема, список был строк на 50, и подвис не на часы, а на минуты, но конкретном в том шаблоне каждая секунда на счету - и потерял часть денег из за этого.
Проблему временно решил постоянной перепривязкой файла к списку, перед обращением к нему, лаг почти сошел на нет, но это тот ещё костыль.
 
  • Спасибо
Реакции: Atlas

Atlas

Client
Регистрация
16.02.2014
Сообщения
131
Благодарностей
8
Баллы
18
Получается что шаблон спотыкается о список-монстр и там начинает подвешиваться.
Возможный выход из ситуации - это разбивать result.txt на подсписки (подфайлы), динамически дробить их на конкретное кол-во строк, когда проблем не возникает, например перед записью результатов проверять в шаблоне кол-во строк и если оно превысило определенный порог, то создавать новый txt привязывать его к списку и в него записывать данные, а старый предварительно перемеименовывать (дописывать дату-время к имени) и перемещать в другую папку, либо просто перемещать в другую папку с уже другим именем, а result.txt очищать.
Как вариант, добавил в самом начале экшн "Привязать к файлу" с чекбоксом "Создавать при отсутствии", т.е на выходе при каждом запуске шаблона создается отдельный файл result.txt, конечный вес не более 10 кб. В итоге все равно все списки подвисают.
Окей, подождал, запустил следующий шаблон - получить список созданных файлов result и объединить их в один список. Поставил 50 потоков. И снова, шаб отработал, списки зависли на 15 минут, причем итоговый объеденный result.txt весит меньше 20 мб.
Потом перезапустил ZP и снова запустил шаблон объединяющий все result-ы в один. И в этот раз списки обновились сразу, без задержек. Т.е как будто перезагрузка ZP помогает, но это тоже костыль)
 

Atlas

Client
Регистрация
16.02.2014
Сообщения
131
Благодарностей
8
Баллы
18
Решил проблему созданием 50 файлов result.txt (для 35 потоков). В начале проекта кубик привязки списка result к рандомному файлу result. sergodjan66 выше по сути то же самое предлагал, за что ему спасибо, но мне так проще.
 
  • Спасибо
Реакции: Devostator и Sergodjan

Devostator

Client
Регистрация
17.09.2011
Сообщения
265
Благодарностей
25
Баллы
28
Решил проблему созданием 50 файлов result.txt (для 35 потоков). В начале проекта кубик привязки списка result к рандомному файлу result. sergodjan66 выше по сути то же самое предлагал, за что ему спасибо, но мне так проще.
Не решение проблемы а костыль какой-то.



У меня та же проблема, ~15 шаблонов, задержка записи в списки от 10 минут. Сервак очень шустрый, стабильный аптайм и сервака и зенки, но вот эта вот задержка ппц напрягает. И у меня увы нет варианта пилить каждый список на кучу списков. Это работы на недели.

@Sergodjan

А в чем вообще здесь проблема не знаете?? В индексировании? Оперативки? Или в чем?

Диск NVME с чтением/записью 4k+, оператива 4100 MHZ.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Не решение проблемы а костыль какой-то.



У меня та же проблема, ~15 шаблонов, задержка записи в списки от 10 минут. Сервак очень шустрый, стабильный аптайм и сервака и зенки, но вот эта вот задержка ппц напрягает. И у меня увы нет варианта пилить каждый список на кучу списков. Это работы на недели.

@Sergodjan

А в чем вообще здесь проблема не знаете?? В индексировании? Оперативки? Или в чем?

Диск NVME с чтением/записью 4k+, оператива 4100 MHZ.
вполне себе решение. Один экшен c# с небольшим куском кода в начале проекта полностью решает проблему
 
  • Спасибо
Реакции: Devostator

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