Создаем парсер (прорамму для сбора информации). UI минимальный
:
* опция для ввода URL с которого начинать сбор данных;
* кнопка Запуск, кнопка Стоп;
* опция: Количество потоков (во сколько потоков будет собираться информация).
Логика следующая: нажимаем кнопку запуск и стартует процесс сбора данных. В рамках процесса берем URL, которые введен и собираем с него html код и сохраняем в html файл с рандомным названием. Собираем с этого URL все ссылки и с ними производим ту же операцию. С них опять же собираем все ссылки и еще раз пропарсиваем (только уже здесь больше ссылок не собираем, другими словами парсим до второго уровня вложенности).
Если нажимаем Стоп процесс останавливается (но не сразу, а должны завершиться все текущие операции, например сбор данных с конкретной страницы или экспорт).
Основные интересующие моменты:
* как это будет реализовано с использованием микросервисной архитектуры.
* как будет реализована многопоточность + очередь URL для обработки
* как будет реализована возможность послать сигнал остановки системе (нужно предусмореть в архитектуре на будущее возможность доработки сигнала паузы, то етсь когда процесс просто ставится на паузу с возможность стартануть с того же места позже, но без закрытия приложения).
* какие паттерны и особенность архитектуры будут использоваться, чтобы сделать решение легко гибким с точки зрения:
*добавления дополнительной логики экспорта (то есть кроме html файла)
*максимального увеличения производительности (слышали, что если сравнивать 2 варианта: парсинг в по 5 потоков в 2х приложениях и парсингх по 2 потока в 5-ти приложениях второй будет быстрее. Хочется имет в будущем возможность так расширять систему.
*чтобы логику самого парсинга можно было легко перенести в другое приложение (с другним UI)
*документирование приложения
Что нужно от вас написать код и дать консультацию по ключевым моментам, описанным выше. Консультация предварительно займет до 1-2 часов по времени. Можем по оплате просто разделить сначала реализация, а потом отдельно почасово консалты.
Язык C# , студия 2013