Сделал, подожду результатов.в лог выводи строки которые взяты из списка и увидишь что не так.
В планах есть перейти на бд, но не прямо сейчас. Хотелось бы разобраться с текущей проблемой. Создание копий у себя пока что не наблюдал.Косяк возможен при одновременном обращении к файлу, у меня тоже подобное было, и файлы дублировались(создавалась копия документа). Пока не перешел на работу с БД мучался, сейчас кайфую=)
Вся работа со списком происходит только в начале шаба, собственно все скриншоты в теме.вариантов достаточно, и в 99% из них виноват пользователь)
Где-то в шаблоне есть возврат строки в список. Есть какой-то другой шаблон, работающий с этим файлом. Или где-то помимо работы как со списком еще идёт и работа как с файлом. Или еще что. Делаю ставку на первое
если сам не косячишь, то с текстовыми списками косяки лезут только когда компьютер незапланировано завершает работу.Не пропускай сообщения с предложением перейти на БД. Сократишь себе время на разбор почему лезут косяки. Проходили)
не должно. Но стоит понимать, что зеннопостер не обновляет файл мгновенно. Так что какой-то рассинхрон по времени может быть неучтенныйИногда открываю файл через блокнот, что бы посмотреть не появились ли новые строки, в ручную не редактирую в процессе выполнения шабов.
Когда начинается логика перебора взять вставить в многопотоке, что я не пробовал, в какой-то момент начинает глючить.если сам не косячишь, то с текстовыми списками косяки лезут только когда компьютер незапланировано завершает работу.
На мой взгляд, работа со списками у зеннопостера организовано замечательно
На какомто этапе стоит добавить "костыль" - удалить дубли. Не помешает.Есть список с проксями, которые берутся из файла и записываются обратно для работы в многопотоке. По идее кол-во проксей не должно изменять в файле, но зенка туда записывает лишние. Хотелось бы узнать, я что-то делаю не так или это баг?
Посмотреть вложение 85938
Посмотреть вложение 85937
Посмотреть вложение 85936
Посмотреть вложение 85935
var list = project.Lists["proxy"];
lock (SyncObjects.ListSyncer) //Лочим для многопотока
{
if (list[0] != "")
{
project.Variables["current_proxy"].Value = list[0];
} else
{
list.RemoveAt(0);
project.Variables["current_proxy"].Value = list[0];
}
list.RemoveAt(0);
}
instance.SetProxy(project.Variables["current_proxy"].Value);
lock (SyncObjects.ListSyncer) //Лочим для многопотока
{
list.Add(project.Variables["current_proxy"].Value);
}