Есть СВОЙ сервер. К нему необходимо выполнять много параллельных запросов по заданному урлу. Для каждого запроса урл отличается только одним GET-параметром, который автоматически берется из заданного диапазона.
Каждый такой процесс посылает свой запрос, и когда получает ответ сервера (число), снова отправляет тот же запрос. И так - пока запущена программа или пока не получит ответ "-1". В таком случае данный процесс останавливается.
В интерфейсе это выглядит как набор блоков, где каждый блок показывает отдельный процесс. Всего программа должна уметь до 1000 процессов (или предложите и обоснуйте ваше макс. количество).
В сущности это подобие браузера с 1000 вкладок. Но браузер бы поставил все вкладки в одну общую очередь, а в программе этого не должно быть. Поддержка javascript, flash и прочего не нужна.
От сервера каждый процесс получает только одно число (но предусмотреть случай, когда сервер может отдать ошибку, и тогда это будет текст).
Программу нужно сделать до ночи.
Программа помимо основной задачи должна:
1. можно запускать сразу несколько экземпляров, и они не должны становится в очередь
2. размер программы 1920х1080 пикселей минус высота полосы задач
3. программа должна уметь запускаться на чистой Windows7 без установленных .NET и прочих сред (можно обговорить)
4. желательно, чтобы была минимальная нагрузка на процессор и озу
5. если в настройках сервера нужно увеличить какие-либо лимиты (чтобы он обрабатывал до 1000 запросов с одного IP), то предупредите об этом заранее
Программа состоит из:
1. верхняя строка
2. блоки (в окне помещается 1000 блоков, это примерно 70х25 пикселей)
Посмотрите макет.
Блоки:
1. в каждом блоке выводится последнее полученное число и время ожидания ответа сервера в секундах как на макете.
2. если навести мышку, то должна появляться всплывающая подсказка со значением параметра, к которому относится этот блок. например, у нас задан диапазон 1-1000,
а урл "http://mysite.com/script.php?id=param". значит надо вывести блоки с процессами от http://mysite.com/script.php?id=1 до http://mysite.com/script.php?id=1000
3. если диапазон меньше, чем 1000 возможных процессов, то остальные блоки выводить светлыми неактивными как в макете.
4. если получен ответ "-1", то этот процесс уже можно останавливать. цвет его фона должен поменятся на синий. текст становится: "ок".
5. если получен ответ не числовой, а какой-то текст (это может быть ошибка сервера или ответ 503 и тд), то цвет фона блока становится красный и следующую попытку нужно сделать через 10 секунд. текст становится: "error".
если навести мышку, то должна появляться всплывающая подсказка с ответом сервера, чтобы можно было увидеть, какая именно ошибка.
Верхняя строка:
1. поле "Урл" - ввод урла, где слово "param" заменится на значение из диапазона
2. поля "От" и "До" - ввод диапазона параметра в урле
3. кнопка "Пуск" - запускает процесс. после нажатия становится неактивна. показана в активном состоянии. после нажатия паузы вновь запускает (продолжает) все процессы, а сама становится неактивна.
4. кнопка "Пауза" - приостанавливает все процессы. после нажатия "пуск" становится активна. показана в неактивном состоянии.
5. "Всего запросов" - сколько суммарно по всем фреймам было отправлено запросов (и на них пришли ответы)
6. "Получено от сервера" - сумма чисел, полученных во всех ответах сервера за время выполнения программы (кроме "-1" и текстов)
7. "Программа работает" - время работы программы в ч,м