Как периодически убивать все инстансы?

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18
Приветствую друзья!
Сделал заказчику парсер гугл мапса. Гугл мапа - это ужас просто! Знал бы что это за сайт такой, никогда бы не брался. В общем на сегодняшний день имеем следующее:
Запускаю проект в бесконечном цикле в 10-15 потоков до тех пор, пока не будут обработаны все строки в таблице с запросами.
По прохождении некоторого времени все инстансы ловят глюки.
Глюки всевозможные в шаблоне исправлены, и в проджект мэйкере не удается обнаружить глюки, которые все ещё вылезают в зенке, в итоге получаем постоянно открывающиеся и закрывающиеся через некоторое время инстансы, и полное отсутствие движения по списку запросов, так как инстансы не прорабатывают сценарии до конца из-за возникающих ошибок.
Оговорюсь: регулярная перезагрузка инстансов в проекте происходит. Это не помогает.
После ручного закрытия инстансов, отображаемых зенкой, они вновь открываются, и начинают работать нормально.
В общем я устал искать причины этих ошибок, и решил просто убивать все инстансы раз в часа два. Подскажите как это можно сделать?
Спасибо.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Какой у вас билд?
Полагаю, от вас так или иначе потребуется запустить диагностику и предоставить report.zip.
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18
Зачем диагностику? Просто убить какой-то внешней убивалкой инстансы и все. Не хочу я мучить свой мозг дальше этим проектом. Он у меня уже в печенках сидит! Перед новым годом мы начали работу по нему. Да и не знаю я каким образом диагностику запускать. Обновление последнее у меня.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Убивать инстансы можно через командную строку.
Код:
C:\Windows\system32>taskkill /?

TASKKILL [/S <система> [/U <пользователь> [/P [<пароль>]]]]
         { [/FI <фильтр>] [/PID <процесс> | /IM <образ>] } [/T] [/F]

Описание:
    Завершает процесс по его ID (PID) или имени образа.

Список параметров:
   /S   <система>                 Подключаемый удаленный компьютер.

   /U   [<домен>\]<пользователь>  Пользовательский контекст, в котором
                                  должна выполняться эта команда.

   /P   <пароль>                  Пароль для этого пользовательского контекста
                                  Запрашивает пароль, если он не задан.

    /FI    <фильтр>               Применение фильтра для выбора набора задач.
                                  Разрешение использовать "*". Пример,
                                  imagename eq acme*

    /PID <процесс>                Идентификатор процесса, который требуется
                                  завершить.
                                  Используйте TaskList, чтобы получить PID.

   /IM  <образ>                   Имя образа процесса, который требуется
                                  завершить. Знак подстановки "*" может быть
                                  использован для указания всех заданий или
                                  имен образов.

    /T                            Завершение указанного процесса
                                  и всех его дочерних процессов.

    /F                            Принудительное завершение процесса.

   /?                             Вывод справки по использованию.

Фильтры:
    Имя фильтра   Допустимые операторы           Допустимые значения
    -----------   ---------------           -------------------------
    STATUS        eq, ne                    RUNNING |
                                            NOT RESPONDING | UNKNOWN
    IMAGENAME     eq, ne                    Имя образа
    PID           eq, ne, gt, lt, ge, le    Значение PID
    SESSION       eq, ne, gt, lt, ge, le    Номер сессии
    CPUTIME       eq, ne, gt, lt, ge, le    Время ЦП в формате
                                            чч:мм:сс.
                                            чч - часы,
                                            мм - минуты, сс - секунды
    MEMUSAGE      eq, ne, gt, lt, ge, le    Использование памяти в КБ
    USERNAME      eq, ne                    Имя пользователя в формате
                                            [<домен>\]<пользователь>
    MODULES       eq, ne                    Имя DLL
    SERVICES      eq, ne                    Имя службы
    WINDOWTITLE   eq, ne                    Заголовок окна

    Примечание
    ----
    1) Символ '*' для параметра /IM применим только совместно с фильтрами.
    2) Завершение удаленных процессов всегда будет принудительным (/F).
    3) Фильтры "WINDOWTITLE" и "STATUS" не принимаются во внимание, когда
       компьютер является удаленным.

Примеры:
  TASKKILL /IM notepad.exe
  TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
  TASKKILL /F /IM cmd.exe /T
  TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
  TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
  TASKKILL /S <система> /U <домен>\<пользователь> /FI "USERNAME ne NT*" /IM *
  TASKKILL /S <система> /U <пользователь> /P <пароль> /FI "IMAGENAME eq note*"
 
  • Спасибо
Реакции: Sanekk

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18
Отчет прикрепил.
Убивать инстансы можно через командную строку.
Код:
C:\Windows\system32>taskkill /?

TASKKILL [/S <система> [/U <пользователь> [/P [<пароль>]]]]
         { [/FI <фильтр>] [/PID <процесс> | /IM <образ>] } [/T] [/F]

Описание:
    Завершает процесс по его ID (PID) или имени образа.

Список параметров:
   /S   <система>                 Подключаемый удаленный компьютер.

   /U   [<домен>\]<пользователь>  Пользовательский контекст, в котором
                                  должна выполняться эта команда.

   /P   <пароль>                  Пароль для этого пользовательского контекста
                                  Запрашивает пароль, если он не задан.

    /FI    <фильтр>               Применение фильтра для выбора набора задач.
                                  Разрешение использовать "*". Пример,
                                  imagename eq acme*

    /PID <процесс>                Идентификатор процесса, который требуется
                                  завершить.
                                  Используйте TaskList, чтобы получить PID.

   /IM  <образ>                   Имя образа процесса, который требуется
                                  завершить. Знак подстановки "*" может быть
                                  использован для указания всех заданий или
                                  имен образов.

    /T                            Завершение указанного процесса
                                  и всех его дочерних процессов.

    /F                            Принудительное завершение процесса.

   /?                             Вывод справки по использованию.

Фильтры:
    Имя фильтра   Допустимые операторы           Допустимые значения
    -----------   ---------------           -------------------------
    STATUS        eq, ne                    RUNNING |
                                            NOT RESPONDING | UNKNOWN
    IMAGENAME     eq, ne                    Имя образа
    PID           eq, ne, gt, lt, ge, le    Значение PID
    SESSION       eq, ne, gt, lt, ge, le    Номер сессии
    CPUTIME       eq, ne, gt, lt, ge, le    Время ЦП в формате
                                            чч:мм:сс.
                                            чч - часы,
                                            мм - минуты, сс - секунды
    MEMUSAGE      eq, ne, gt, lt, ge, le    Использование памяти в КБ
    USERNAME      eq, ne                    Имя пользователя в формате
                                            [<домен>\]<пользователь>
    MODULES       eq, ne                    Имя DLL
    SERVICES      eq, ne                    Имя службы
    WINDOWTITLE   eq, ne                    Заголовок окна

    Примечание
    ----
    1) Символ '*' для параметра /IM применим только совместно с фильтрами.
    2) Завершение удаленных процессов всегда будет принудительным (/F).
    3) Фильтры "WINDOWTITLE" и "STATUS" не принимаются во внимание, когда
       компьютер является удаленным.

Примеры:
  TASKKILL /IM notepad.exe
  TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
  TASKKILL /F /IM cmd.exe /T
  TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
  TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
  TASKKILL /S <система> /U <домен>\<пользователь> /FI "USERNAME ne NT*" /IM *
  TASKKILL /S <система> /U <пользователь> /P <пароль> /FI "IMAGENAME eq note*"
А как мне это все запустить через планировщик?
 

Вложения

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Вариант решения существует.
По завершении шаблона получаете PID инстанса и запускаете командой или батником снятие задачи.
Главная проблема будет в том, все попытки скорее всего попадут в неудавшиеся. То есть, если понадобятся логи, - вам придется писать их самостоятельно.
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18
Вариант решения существует.
По завершении шаблона получаете PID инстанса и запускаете командой или батником снятие задачи.
Главная проблема будет в том, все попытки скорее всего попадут в неудавшиеся. То есть, если понадобятся логи, - вам придется писать их самостоятельно.
Думаю это не проблема.
Я только не пойму как же все таки это осуществить?
Как получить PID инстанса, и запустить командой или батником снятие задачи?
Расскажите пожалуйста попунктно. Готов заплатить за инструкцию пошаговую.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
О каких ошибках и глюках речь? Нужно подробнее написать, прежде чем что-то советовать.
Какой смысл перезагружать инстанс, если шаблон вываливается на ошибке HTML элемента, например
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18
О каких ошибках и глюках речь? Нужно подробнее написать, прежде чем что-то советовать.
Какой смысл перезагружать инстанс, если шаблон вываливается на ошибке HTML элемента, например
Смысл в том, что поймать эту ошибку в ПМ не получается, а если убить инстанс руками, нажав на крестик в правом верхнем углу окна, то все продолжает работать.
Если хотите то я могу дать вам доступ к серверу. Там сейчас как раз работает zennobox с нависшими потоками, вы сможете закрыть instances сами и посмотреть как проект дальше продолжит работу.
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18
Товарищи даже за деньги никто не готов помочь что ли?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
В логах достаточно много ошибок, связанных с NET
Попробуйте переустановить NEt фреймворки
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Может гугл апи поможет?
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18
Может гугл апи поможет?
Может быть. В след. раз обязательно буду смотреть в сторону апи., ибо с внешним интерфейсом гугловским неблагодарное дело работать.
Кстати убивалку прикрутил. Добрые люди подогнали. Ситуация стабилизировалась вроде.
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Кстати у Вас не было опыта работы с гугл апи? Не покажете шаблон? Как это выглядит хоть что бы посмотреть.
Неа, но думаю там не сильно сложнее чем этот геморой...
 

eleeet

Client
Регистрация
08.06.2016
Сообщения
13
Благодарностей
0
Баллы
1
А не вариант раз в какое то время убивать постер с сохранением данных, и загружать заново с восстановления с последней точки парсинга?
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18
А не вариант раз в какое то время убивать постер с сохранением данных, и загружать заново с восстановления с последней точки парсинга?
Я настроил сохранение запроса в исходный файл при ошибке, и батником убиваю инстансы раз в неск. часов. И все. Добрые люди подогнали батник))
 

eleeet

Client
Регистрация
08.06.2016
Сообщения
13
Благодарностей
0
Баллы
1
ну вот я это и имел в виду, ежели не сложно можно батник в личку? тоже планирую настроить себе такое
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18
ну вот я это и имел в виду, ежели не сложно можно батник в личку? тоже планирую настроить себе такое
да зачем в личку? Пусть приносит пользу людям.
Запускать нужно с правами администратора. Иначе может не работать.
 

Вложения

eleeet

Client
Регистрация
08.06.2016
Сообщения
13
Благодарностей
0
Баллы
1
Большое спасибо!
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
господа, вы звери! (с) кино раба любви :-)

upload_2016-7-7_12-25-23.png
 

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18

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