Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

C# пример приложения на микросервисной архитектуре

project expired
C#


Создаем парсер (прорамму для сбора информации). UI – минимальный http://prntscr.com/pm20vu :
* опция для ввода URL с которого начинать сбор данных;
* кнопка Запуск, кнопка Стоп;
* опция: Количество потоков (во сколько потоков будет собираться информация).

Логика следующая: нажимаем кнопку запуск и стартует процесс сбора данных. В рамках процесса берем URL, которые введен и собираем с него html код и сохраняем в html файл с рандомным названием. Собираем с этого URL все ссылки и с ними производим ту же операцию. С них опять же собираем все ссылки и еще раз пропарсиваем (только уже здесь больше ссылок не собираем, другими словами – парсим до второго уровня вложенности).

Если нажимаем Стоп – процесс останавливается (но не сразу, а должны завершиться все текущие операции, например сбор данных с конкретной страницы или экспорт).

Основные интересующие моменты:
* как это будет реализовано с использованием микросервисной архитектуры.
* как будет реализована многопоточность + очередь URL для обработки
* как будет реализована возможность послать сигнал остановки системе (нужно предусмореть в архитектуре на будущее возможность доработки сигнала паузы, то етсь когда процесс просто ставится на паузу с возможность стартануть с того же места позже, но без закрытия приложения).
* какие паттерны и особенность архитектуры будут использоваться, чтобы сделать решение легко гибким с точки зрения:
**добавления дополнительной логики экспорта (то есть кроме html файла)
**максимального увеличения производительности (слышали, что если сравнивать 2 варианта: парсинг в по 5 потоков в 2х приложениях и парсингх по 2 потока в 5-ти приложениях – второй будет быстрее. Хочется имет в будущем возможность так расширять систему.
**чтобы логику самого парсинга можно было легко перенести в другое приложение (с другним UI)
*документирование приложения

Что нужно от вас – написать код и дать консультацию по ключевым моментам, описанным выше. Консультация предварительно займет до 1-2 часов по времени. Можем по оплате просто разделить – сначала реализация, а потом отдельно почасово консалты. 
Язык C# , студия 2013


Make a proposal!

The Customer does not want to make a prepayment? Payment through Safe will help avoid potential fraud.

  1. 14 days5 000 ₴
    Movement
    Movement Group
    225   

    Здравствуйте! Готов выполнить на c# asp net , многопоточность реализую. Всё напишу с 0
    Телеграм для быстрой связи: MovementGroup

    Ukraine Rovno | 21 October at 09:02 |
  2. 3 days7 000 ₽
    Александр
    Александр Ли
    398     2  0

    Здравствуйте!

    Реализую и проконсультирую. Вообще задача парсинга простейшая и ее можно реализовать за 3000 рублей. Но вы видимо простых путей не ищите и хотите предельно усложнить изначально простое приложение.

    По порядку:
    1. Микросервисы. У вас и так микро-задача. Разбивать ее на микросервисы это странно. Как вообще? Один сервис будет заниматься HTTP-запросами и кидать данные на парсинг второму сервису? Больше потратим времени на передачу данных.
    2. Будем поддерживать указанное кол-во потоков, которые будут брать на обработку данные из потоко-безопасной коллекции. В случае отмены/приостановки, поток вернет данные в коллекцию.
    3. Сигнал остановки посылается через специальный токен. Каждый поток отслеживает состояние токена и при наличии запроса на отмену/паузу возвращает данные в коллекцию и останавливается.
    4. Можно в качестве ответа от потока-парсера, выдавать WebResponse. Обрабатывать ответ будет класс HtmlExporter, который будет реализацией интерфейса IExporter.
    Соответственно, всегда можно будет создать другую реализацию этого интерфейса, что бы осуществлять какую-то иную логику обработки HTTP-ответов.
    По поводу многопоточности. Это спорный вопрос. В теории при каких-то сложных вычислениях, это может сработать, т.к. таким образом будет преодолен предел для одного приложения. Но в данной задаче основной ботлнек в HTTP-запросах, который выполняются несоизмеримо долго. Т.е. в основном упор не в процессорные мощности, а в ширину вашего подключения к интернету.
    Для простого переноса логики, логика должна быть отвязана от интерфейса, как например, в паттерне MVVM.

    Оплата после демонстрации.

    Быстрая связь:
    Skype: jingle_of_coins
    Telegram: @DezmontDeXa

    Russia Krasnodar | 21 October at 09:33 |
  3. 5 days4 000 ₴
    Владислав
    Владислав Тищенко
    505   verified    5  0

    Здравствуйте. Есть готовое решение, которое удовлетворяет большинству требований. Ознакомиться с ним можно в портфолио. Можно обсудить реализацию дополнительной функциональности.

    Ukraine Zaporozhe | 21 October at 10:18 |
  1. 30 days5 000 ₴
    Дмитрий
    Дмитрий Гольд
    637     9  0

    Доброе утро, Антон! Меня заинтересовал Ваш проект. Я готов немедленно за него взяться. Подробности можем обговорить по почте:
    [email protected]
    Или в Viber - https://viber.click/+79106167066.
    Или в WhatsApp - https://wa.me/79106167066?text=Здравствуйте!
    Или в Wowapp - https://www.wowapp.com/w/golddmitry/join.
    Или в Фейсбук - https://www.facebook.com/golddmitry.
    Или в Одноклассники - https://ok.ru/profile/494400231136.
    Или в ICQ - http://www.icq.com/whitepages/cmd.php?uin=216391280&action=message.
    Или в Telegram - http://t.me/golddmitry.
    Лучше через мой аккаунт в социальной сети Вконтакте - http://vk.com/write10728938.
    Резервный - https://vk.com/write210390407.
    Страничка с остальными видами связи тут - http://pc-rzn.ru/home.htm.

    Могу сделать оптовую скидку.
    P.S. Ну или в половину меньше, но срок в два с половиной раза больше.

    C уважением,
    Гольд Дмитрий Владимирович.
    Ограничение в 60 символов - ozfcrqhM6lzeb0BZpmClTT3oenc17Kj0XX

    Russia Ryazan | 21 October at 08:45 |
  2. 5 days10 000 ₴
    Sergey
    Sergey Popov
    918     13  0   2

    Здравствуйте. Могу выполнить в кратчайшие сроки.
    Обращайтесь
    Skype ssuper-puper
    tg sergeyp338

    Ukraine Skadovsk | 21 October at 08:56 |
  3. 7 days5 000 ₽
    Юрий
    Юрий Гришин
    141     0  1

    Готов выполнить , имею большой опыт программирования на C#,а также неплохо объясняю (помог одному студенту из политеха сдать курсач). Мой телеграм - @mrfackersuser.

    Russia Saint-Petersburg | 21 October at 15:45 |