Запуск нескольких шаблонов

  • Автор темы Автор темы stmult
  • Дата начала Дата начала

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Реакции
37
Баллы
18
Есть задача: запускать в постере 2 шаблона одновременно с одним нюансом. Они будут выполняться параллельно, но после того как первый шаблон заканчивает выполнение, второй должен сделать в этот момент паузу секнд на 5-10 (необходимо это потому что после выполнения первого шаблона, происходит разрыв интернета на 2-3 секунды для смены айпи адреса. А если второй шаблон не приостанавливается, то в нём появляются ошибки, в зависимости от того на каком этапе второй шаблон, ошибки могут быть более или менее критичные). Может каким то сторонним приложением или в самом зенно есть такая возможность ?
 
А что мешает использовать прокси?
 
А что мешает использовать прокси?
прокси по-любому хуже, чем белые ip, предоставляемые провом..
человек хочет сэкономить на прокси, вполне понятное желание..
сам так использую своего прова иногда..
 
А что мешает использовать прокси?
Прокси дорого для данной цели будут стоить, а данным способом получается и бесплатно и надежно. А по самому вопросу что-то можете подсказать?
 
Такой функции нет. Как вариант обрабатывать каждый экшен шаблона, который может прерваться.
Выводить красный выход от него на паузу в несколько секунд, и возвращать обратно.
Не очень красиво, конечно)
 
или же еще в красный выход влепить проверку какого то файла. Т.е. если 1-й шаб выполнился, то создается файл. Во втором шабе происходит ошибка, в красном выходе проверяется есть ли этот файл. Если есть - удаляем его и делаем паузу.

Еще что на ум приходит - выполнять в критических местах команду пинг, пинговать к примеру гугл. Не знаю прокатит такое или нет, что там пинг возвращать будет...
 
Такой функции нет. Как вариант обрабатывать каждый экшен шаблона, который может прерваться.
Выводить красный выход от него на паузу в несколько секунд, и возвращать обратно.
Не очень красиво, конечно)
В том и дело, что экшены выполняются) Но без интернета толку от этого нету. Например при нажатии кнопок удалить, сохранить и прочего, в отсутствии интернет соединения такие кнопки будут нажать, но реального удаления или сохранения не произойдет
 
Вот есть еще идея юзать пинг через си-шарп сниппет. Сам не использовал - нарыл код в гугле
Код:
Развернуть Свернуть Копировать
Ping pingCheck = new Ping();

            PingOptions options = new PingOptions();
            options.DontFragment = true;


            //буфер
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes(data);
            //120 милисекунд (можно поставить 30000 - будет 30 сек)
            int timeout = 120;
PingReply ansver = pingCheck.Send(ipadr, timeout, buffer, options);
                        if (ansver.Status == IPStatus.Success)
                        {
                          return True;
                        }
                        else
                        {
                            return False;
                        }
 
Только у вас там видимо проблема будет с тем, что шаб остановится на середине и нужно с того самого места начать, как я понял
 
А IP надо менять именно по завершении первого, или может быть можно подождать пока 2-й доработает???
 
ну, это вам виднее в какой очередности их запускать можно.
просто "ждущий режим" можно организовать без проблем
 
правда не сильно элегантный, с применением 2-х файликов)

З.Ы. А куда подевалась кнопка "редактировать" в комментах?
 
Я тоже думал примерно так же. Но пришел к выводу что метод не сильно универсальный при много-поточности
Насколько я понял, то задача такая: Есть 2 шаба, 1-й в конце своей работы должен ребутнуть интернет. Но он должен подождать пока отработает 2-й шаб до конца, а не вырубить инет среди работы 2-го шаба. 2-й шаб должен работать и добавлять потоки пока не увидит, что скоро должен ребутнуться инет. Как только он овидит, что инет должен ребутнуться - перестать запускать новые потоки и подождать.
Если бы я решал такую задачу, я бы остановился на таком варианте:
- Создаем папку lock (она нужна что-бы скидывать туда "системные файлы")
- запускаем 1-й шаб
- он работает пока не доходит до екшена перезагрузки инета. Как только он дошел до этого экшена - он создает файлик (например need_inet_reboot) и сканирует папку lock на наличие файлов. Если там есть файлы - он ждет нное время и возвращается обратно к проверке файлов в папке lock. Если в папке lock нет файлов - ребутает инет.
Потом ждет пока инет появится (например пингует гугл). Когда инет появился - удаляет файлик need_inet_reboot

- запускаем 2-й шаб
- второй шаб проверяет есть ли файлик need_inet_reboot, если есть - ждет нное время и опять проверяет. Если же этого файла нет - создает файлик lock_id133564678(уникальный для каждого потока) в папке lock и делает свои дела. Как только он все дела сделал - удаляет свой файл lock_id1346e5656789 (я бы добавил и good end и bad end в шаб и у них вставил екшн удаления файлика блокировки, а то если файлик вдруг не удалится - то инет не ребутнется)

По идее должно работать железно при 1-м потоке первого шаба и n потоков второго шаба

Если надо делать много потоков 1-го шаба, то тогда надо перед екшном создания файла need_inet_reboot вставить проверку есть ли такой файл (его мог создать какой-то другой поток). Если уже есть - то заново не создаем и инет в этом потоке не вырубаем - об этом позаботится другой поток

Вот как-то так)
 
  • Спасибо
Реакции: stmult

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