![]() |
Выполнение одной программы несколько раз и запись результатов в файл
Собственно вот такая проблема возникла. Есть txt файл. На каждой строчке url. Есть программа которая эти url обрабатывать может, но по одному. Нужно автоматизировать процесс и записать в файл все что выведет программа после обработки.
Обработка 1ого урл в этой программе для современных машин дело плевое, поэтому я захотел блекджека и шлюх, то есть обрабатывать несколько урлов одновременно, хотя это и необязательно, но желательно. Вобщем как я решил делать. 1) спрашиваю у юзера сколько он хочет обрабатывать урлов одновременно (обычно их несколько десятков тысяч, поэтому как ни крути но работу лучше сделать по частям, кроме того канал у людей не резиновый) 2) далее запускаю несколько экземпляров программы с разными урлами а результаты сохраняю в лог. 3) скорость обработки каждого из урлов будет разная поэтому как только освобождается часть свободного места, количество которого указали в пункте 1, нужно запускать новый экземпляр программы с новым урлом. И вот в этом загвоздка. Как определить, что программа закончила работу с 1им урлом и загрузить ее новым? |
Так, ну значит программа моя по окончании своей работы (да кстати она консольная если кто не понял) выдает 100% надпись одну. То есть можно следить за логом и с каждым появлением записи об окончании запускать обработку нового урла. Только вот я не знаю как сделать подобное «слежение».
|
у меня новый вопрос. как запустить программу с параметрами, а результаты сохранить в лог?
то есть например у меня есть программа file.exe и запускать его надо так: file.exe -url=http://yandex.ru/ так вот как сохранить в лог то, что выведет программа после запуска? я пытался сделать вот так: (file.exe -url=http://yandex.ru/)>log.txt и так file.exe -url=http://yandex.ru/ > log.txt результат 1 и тот же: в логе написано EInOutError: I/O error 6 + название программы. |
Код:
file.exe -url=http://yandex.ru/ >log.txt Код:
>log.txt file.exe -url=http://yandex.ru/ Цитата:
|
Цитата:
ThreadBalancer.cmd - тут указывается количество параллельно запущенных потоков, входной файл с url делится поровну между ними Threads - потоки, Data - файл с URL-ками Код:
@Echo Off А здесь уже собственно, запускается сама программа, которой поочередно скармливаются URL из диапазона, отданного потоку. Код:
@Echo Off |
так, спасибо за помощь с пунктами 1 и 3.
а со 2ым пунктом я решил поступить вот так: http://www.cyberforum.ru/win-api/thread626505.html |
ууупс, похоже, что из-за конструктивных особенностей программы лучше каждый поток запустить в отдельном окне. в конце концов окна эти можно сделать невидимыми!
|
Время: 15:53. |
Время: 15:53.
© OSzone.net 2001-