Как пройти по всему списку без создания цикла?

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Есть список доменов, который нужно весь обойти в шаблоне.
Допустим постер доров в "вордперс", есть список этих доноров и есть список доров.
Как сделать так чтобы пройтись по всем доменам, но не делать внутри шаблона циклов, а чтобы циклы задавались в ЗП с помощью количества повторений или как-то еще?
Сейчас в шаблоне стоит счетчик и проверка не превышает ли значение счетчика какое-то значение и все это по кругу. Если на каком-то домене вдруг сбой то весь шаблон вылетает с ошибкой, а надо чтобы просто переходил на другой домен и выполнялся дальше.
Надеюсь понятно объяснил.
 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 408
Благодарностей
1 474
Баллы
113
вместо цикла выполняй шаблон столько раз, сколько в списке строк. заждый раз начиная сначала а вконце удаляя строку
 
  • Спасибо
Реакции: doc

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18

Nord

Client
Регистрация
22.03.2012
Сообщения
2 408
Благодарностей
1 474
Баллы
113
Удаляешь с одного списка, сохраняешь во второй. Работает шаблон.
Когда список первый будет пустой шаблон работать не будет
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Удаляешь с одного списка, сохраняешь во второй. Работает шаблон.
Когда список первый будет пустой шаблон работать не будет
Нет, такое не подходит, сайтов в списке меньше чем доров. Шаблон должен работать пока не закончится список доров, а не сайтов.

ЗЫ А что в таблице нельзя строку переписывать в конец файла?
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Нет, такое не подходит, сайтов в списке меньше чем доров. Шаблон должен работать пока не закончится список доров, а не сайтов.

ЗЫ А что в таблице нельзя строку переписывать в конец файла?
Так удаляйте из списка доров, если список сайтов ходит по кругу.
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Так удаляйте из списка доров, если список сайтов ходит по кругу.
Стал брать рандомно строку из таблицы, не удаляя ее и проверять пустоту файла со списком доров.
Но изначально хотелось идти по списку доменов не рандомно, а по порядку, чтобы хотябы приблизительно гарантировать равномерность использования одних и тех же сайтов.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
с
Стал брать рандомно строку из таблицы, не удаляя ее и проверять пустоту файла со списком доров.
Но изначально хотелось идти по списку доменов не рандомно, а по порядку, чтобы хотябы приблизительно гарантировать равномерность использования одних и тех же сайтов.
Как вариант через сводный файл, но если делать не через снипет, можно наткнуться на перегенерацию, т.к. шабы стартуют довольно быстро и первый может не успеть его создать до того как второй и дальше увидят что он уже есть.
А так логика простая:
1. При запуске шаблона смотрим, есть сводный файл или нет
2. Если его нет создаем и в него закидываем как нам надо сочетания доменов с дорами, т.е. сразу формируем список/таблицу для работы
3. Дальше берем с удалением из файла данные, где у нас есть и домен и дор и что еще надо, и тут уже каждый шаб получает только свое.
4. Файл кончился, работа завершена

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

P.S. как вариант можно попутно использовать глобальные переменые, но тоже не факт что сразу несколько потоков не попробуют ее выставить, есть такая проблема у зенки при многопотоке.
 
  • Спасибо
Реакции: demian

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
с
Как вариант через сводный файл, но если делать не через снипет, можно наткнуться на перегенерацию, т.к. шабы стартуют довольно быстро и первый может не успеть его создать до того как второй и дальше увидят что он уже есть.
А так логика простая:
1. При запуске шаблона смотрим, есть сводный файл или нет
2. Если его нет создаем и в него закидываем как нам надо сочетания доменов с дорами, т.е. сразу формируем список/таблицу для работы
3. Дальше берем с удалением из файла данные, где у нас есть и домен и дор и что еще надо, и тут уже каждый шаб получает только свое.
4. Файл кончился, работа завершена

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

P.S. как вариант можно попутно использовать глобальные переменые, но тоже не факт что сразу несколько потоков не попробуют ее выставить, есть такая проблема у зенки при многопотоке.
Одна незадача - я в снипетах ни бумбум :(
Пока оставил так, посмотрю что получится. Может равномерность будет не такой плачевной, как я думаю.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Одна незадача - я в снипетах ни бумбум :(
Пока оставил так, посмотрю что получится. Может равномерность будет не такой плачевной, как я думаю.
Стукни в скайп, если что, подмогну.
 

Adigen

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

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
привязывать список сайтов к списку, брать первый с удалением и записывать его в конец
тогда будет ходить по списку сайтов до посинения
 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 408
Благодарностей
1 474
Баллы
113
привязывать список сайтов к списку, брать первый с удалением и записывать его в конец
тогда будет ходить по списку сайтов до посинения
Если шаблон не прервется между взятием и записью строки=)
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113

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