Как я могу запустить командные строки с VBA и перезапустить, если они не работают? - PullRequest
0 голосов
/ 25 сентября 2010

Я программист на Perl с несколькими хорошими сценариями, которые извлекают HTTP-страницы (из текстового файла-списка URL-адресов) с помощью cURL и сохраняют их в папке.

Однако количество страниц, которые нужно получить, исчисляется десятками миллионов. Иногда происходит сбой сценария с номером 170 000, и мне приходится снова запускать сценарий вручную. Он автоматически читает URL и видит, есть ли загруженная страница и пропускает. Но с несколькими сотнями тысяч все еще требуется несколько часов, чтобы вернуться туда, где он остановился. Очевидно, что в конечном итоге это не удастся.

Итак, я думаю, что решение состоит в том, чтобы создать программу на Visual Basic, которая открывает командные запросы, собирает выходные данные консоли и, если необходимо, перезапускает сценарий с последнего пропущенного номера.

Я никогда не делал VB-программу, но слышал, что это торт. Могу ли я получить объяснения непрофессионала о том, как это сделать (открыть подсказки, отправить команды, захватить вывод, перезапустить подсказки)? Или есть лучший способ решить мою проблему?

Ответы [ 2 ]

3 голосов
/ 25 сентября 2010

Измените, как вы делаете вещи. Поддерживать очередь страниц для проверки вне сценария. Когда вы отметите один, отметьте его как просмотренный и запишите дату, когда вы его проверили.

При перезапуске сценария сбросьте очередь только на те страницы, которые были отмечены как отмеченные вне временного окна.

Здесь может пригодиться база данных.

Исправьте проблему, и вам не нужно создавать много мусора вокруг этой проблемы.

Вы говорите, что иногда вы не можете создать каталог. Это должно быть легкой проблемой. Однако это не означает, что вы можете игнорировать это в своем скрипте. Не ошибки могут быть исправлены, но, по крайней мере, вы можете записать проблему, чтобы вы могли исследовать. Как вы создаете каталоги?

1 голос
/ 25 сентября 2010

Я бы посоветовал забыть VBA, а также cURL и использовать Perl-модули LWP или Mech для получения ваших страниц.Затем вы можете корректно обработать ошибку в своем скрипте, не прибегая к VB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...