Добавить новость
ru24.net
Все новости
Февраль
2024

Разработать распределенный вычислитель арифметических выражений на Go

0
Описание задачи:
Пользователь хочет считать арифметические выражения. Он вводит строку 2 + 2 * 2 и хочет получить в ответ 6. Но наши операции сложения и умножения (также деления и вычитания) выполняются "очень-очень" долго. Поэтому вариант, при котором пользователь делает http-запрос и получает в качестве ответа результат, невозможна. Более того: вычисление каждой такой операции в нашей "альтернативной реальности" занимает "гигантские" вычислительные мощности. Соответственно, каждое действие мы должны уметь выполнять отдельно и масштабировать эту систему можем добавлением вычислительных мощностей в нашу систему в виде новых "машин". Поэтому пользователь, присылая выражение, получает в ответ идентификатор выражения и может с какой-то периодичностью уточнять у сервера "не посчиталось ли выражение"? Если выражение наконец будет вычислено - то он получит результат. Помните, что некоторые части арифметического выражения можно вычислять параллельно.

Front-end часть

GUI, который можно представить как 4 страницы

  • Форма ввода арифметического выражения. Пользователь вводит арифметическое выражение и отправляет POST http-запрос с этим выражением на back-end. Примечание: Запросы должны быть идемпотентными. К запросам добавляется уникальный идентификатор. Если пользователь отправляет запрос с идентификатором, который уже отправлялся и был принят к обработке - ответ 200. Возможные варианты ответа:
    • 200. Выражение успешно принято, распаршено и принято к обработке
    • 400. Выражение невалидно
    • 500. Что-то не так на back-end. В качестве ответа нужно возвращать id принятого к выполнению выражения.
  • Страница со списком выражений в виде списка с выражениями. Каждая запись на странице содержит статус, выражение, дату его создания и дату завершения вычисления. Страница получает данные GET http-запросом с back-end-а
  • Страница со списком операций в виде пар: имя операции + время его выполнения (доступное для редактирования поле). Как уже оговаривалось в условии задачи, наши операции выполняются "как будто бы очень долго". Страница получает данные GET http-запросом с back-end-а. Пользователь может настроить время выполнения операции и сохранить изменения.
  • Страница со списком вычислительных возможностей. Страница получает данные GET http-запросом с сервера в виде пар: имя вычислительного ресурса + выполняемая на нём операция.

    Требования:
  • Оркестратор может перезапускаться без потери состояния. Все выражения храним в СУБД.
  • Оркестратор должен отслеживать задачи, которые выполняются слишком долго (вычислитель тоже может уйти со связи) и делать их повторно доступными для вычислений.

Back-end часть

Состоит из 2 элементов:

  • Сервер, который принимает арифметическое выражение, переводит его в набор последовательных задач и обеспечивает порядок их выполнения. Далее будем называть его оркестратором.
  • Вычислитель, который может получить от оркестратора задачу, выполнить его и вернуть серверу результат. Далее будем называть его агентом.
Оркестратор
Сервер, который имеет следующие endpoint-ы:

  • Добавление вычисления арифметического выражения.
  • Получение списка выражений со статусами.
  • Получение значения выражения по его идентификатору.
  • Получение списка доступных операций со временем их выполнения.
  • Получение задачи для выполнения.
  • Приём результата обработки данных.

Агент
Демон, который получает выражение для вычисления с сервера, вычисляет его и отправляет на сервер результат выражения. При старте демон запускает несколько горутин, каждая из которых выступает в роли независимого вычислителя. Количество горутин регулируется переменной среды.

В первую очередь необходимо разработать часть back-end.
Возможны отклонения от задания по согласованию.
Проект должен разворачиваться через Docker.
Возможно использование сторонних библиотек.
Срок 12.02.24



Moscow.media
Частные объявления сегодня





Rss.plus



Уфа готовится принять гостей форума «Россия – спортивная держава»

Уфа готовится принять гостей форума «Россия – спортивная держава»

Уфа готовится принять гостей форума «Россия – спортивная держава»

Выставка «Павка Корчагин — герой Поднебесной»


Юные таланты из 28 стран мира выступают на фестивале в Москве

У гроба Вячеслава Добрынина встретились его дочь, и предположительно, внебрачный сын

Недосягаемый эталон: 9 странных бьюти-процедур из разных уголков планеты

Певица Натали Орли спела для самых ярких бизнес-леди России


Overview of Baltic Bearing Company-Riga (BBC-R)

We save HUNDREDS on UK attraction tickets with our free Blue Peter Badge – yes they still exist and anyone can get one

Protect and Enhance Your Vehicle with Paint Protection Film and Ceramic Coating from Tintex

3 Negroni variations to try this fall


Следователь из Санкт-Петербурга обвиняется в покушении на убийство собственного сына

Катались на питбайке и переломали ноги

Сегодня мы рады поздравить нашего дорогого товарища, заслуженного спасателя, Кудинова Валерия Анатольевича, с юбилеем — 60-летием!

Виктория Чертина и Евгения Вершинина выступили в рамках конгресса «Новые правила роста»


The Big Catch: Tacklebox is the hardest 3D platformer I've ever played, 8+ hours long, and a free to play 'prologue' to a bigger, better game on the way

Disney Dreamlight Valley's next free update, Jungle Getaway, will introduce two new characters

Состоялся релиз Kafka's Metamorphosis на iOS и Android

A Valve engineer used ChatGPT to find a new matchmaking algorithm for Deadlock, and now it's in the game


Просувайте сайт на новий рівень за допомогою якісних крауд-посилань


Станислав Кондрашов, охотник за привидениями, о призраках на живописных дорогах мира

Россия получила пять отказов на выступления докладчиков на Форуме ОБСЕ

Релиз трека. Релиз новой песни. Релиз сингла. Релиз Музыкального альбома.

Индивидуальные кухни на заказ в Санкт-Петербурге




Mash: известный кардиохирург Ренат Акчурин умер в возрасте 78 лет

Релиз трека. Релиз новой песни. Релиз сингла. Релиз Музыкального альбома.

"Динамо" уступило ЦСКА в матче РПЛ

С начала 2024 года более 2,5 тысячи многодетных мам в Московском регионе досрочно вышли на пенсию


Софья Великая: я одержала первую победу в керлингольфе

«Петэксперт» принял участие в круглом столе, где обсуждались вопросы развития производства кормов для домашних животных

Студенческое общежитие МГИМО в Одинцове откроют в 2025 году

Тренер Осинькин не исключил отставки из "Крыльев Советов" 7 октября


Тату, побег, анорексия. Как бунтуют дети Яковлевой, Успенской, Кафельникова

Синнер сделал предложение Калинской на вечеринке в Нью-Йорке. Россиянка согласилась

Соболенко проиграла в ¼ финала турнира WTA-1000 в Пекине

Кудерметова проиграла в финале парного турнира в Пекине


Интерактивную игру для наставников и вожатых провели в Химках ко Дню учителя

Халява, плиз: деньги на этой карте доступны детям и подросткам — Голикова обнадежила всех своими словами

ЦСКА обыгрывает «Динамо» в дерби после первого тайма: видео гола

Студенческое общежитие МГИМО в Одинцове откроют в 2025 году


Музыкальные новости

На церемонии введения Оззи Осборна в Зал славы рок-н-ролла выступит лидер TOOL

Тату, побег, анорексия. Как бунтуют дети Яковлевой, Успенской, Кафельникова

История современной Золушки в новом клипе Натальи Гордиенко «Телефонный звонок»

Усилит команду: Баста прокомментировал переход Дениса Глушакова в «СКА Ростов»



Релиз трека. Релиз новой песни. Релиз сингла. Релиз Музыкального альбома.

Индивидуальные кухни на заказ в Санкт-Петербурге

В Республике Таджикистан прошел первый этап проекта «Русский язык: читаем, слушаем, смотрим в странах СНГ»

Россия получила пять отказов на выступления докладчиков на Форуме ОБСЕ


Samsung добавляет AI Cast и ChatGPT в телевизоры с Tizen

Михаил Пирогов выступит на бурятской сцене в опере «Риголетто» 9 октября

Путин поздравил Рахмона с днем рождения в преддверии его визита в Москву

Аксенов: в отдаленные села будут приезжать мобильные аптеки


Автобус с игроками «Ростова» попал в ДТП после матча со «Спартаком»

Автобус «Ростова» попал в ДТП на МКАДе: Футболисты не пострадали

Правительство выделило деньги на путинскую трассу до Тюмени

Станислав Кондрашов, охотник за привидениями, о призраках на живописных дорогах мира


Путин на следующей неделе встретится в Москве с лидерами стран СНГ

Путин поздравил Московский джазовый оркестр с 25-летием

Путин обсудил с Рахмоном подготовку к скорому саммиту СНГ в Москве

Путин встретится с президентом Таджикистана в Москве





Удобный и понятный сервис для поиска лекарств

Стартовал физкультурно-спортивный фестиваль для людей с инвалидностью «Сочи-2024»

В Орле гинекологи и неонатологи из Москвы, Курска и Рязани обсудили проблемы женского и детского здоровья

О ментальном здоровье через кино: что смотреть на Mental Health Film Festival


País: союзники Киева начали давить на Зеленского для завершения конфликта

В Киеве стало известно о планах Зеленского в отношении своих союзников


Губерниев из Московской губернии

Стартовал физкультурно-спортивный фестиваль для людей с инвалидностью «Сочи-2024»

Автобус с игроками «Ростова» попал в аварию на МКАД

Автобус с игроками «Ростова» попал в ДТП после матча со «Спартаком»




Сергей Собянин. Главное за день

Собянин: Один из крупнейших спортивных кластеров появится в Мневниковской пойме

Собянин поздравил народного артиста Михайлова с днем рождения

Собянин: Еще семь площадок присоединилось к проекту «Музеи — детям»


Собянин: МЭШ — основная цифровая образовательная экосистема Москвы

Собянин назвал самые полезные сервисы «МЭШ» для учителей

Сергей Собянин. Главное за день


«Петэксперт» принял участие в круглом столе, где обсуждались вопросы развития производства кормов для домашних животных

Интерактивную игру для наставников и вожатых провели в Химках ко Дню учителя

Погода в Твери: мокрая осень без аномалий

«Горький парадокс»: пять знаков Вселенной о том, что вам пора уходить из отношений


Фестиваль «Международные недели музыки» стартовал в Архангельске

Архангельский боксер Ярослав Безсолов одержал уверенную победу на чемпионате России в Иркутске

В Архангельской области проходят мероприятия Всероссийского дня ходьбы

В Поморье более 4000 человек посетили мероприятия акции «День краеведческих знаний»


Час занимательной информации «Про котов, котят и кошек, обитателей окошек»

Главное за день: 5 октября

В Новочеркасске состоялось открытие памятника советскому врачу Валентину Войно-Ясенецкому

Выставка рисунков «За животных в ответе и взрослые и дети», к Всемирному дню защиты животных.


ЦСКА вырвал победу у "Динамо" в московском дерби

Экс-мэра Сочи могут выпустить из СИЗО в расположение корпуса "Князь Владимир"

Юнармейцы из Дмитрова приняли участие в озеленении парка имени Лямина в Яхроме

Интерактивную игру для наставников и вожатых провели в Химках ко Дню учителя












Спорт в России и мире

Новости спорта


Новости тенниса
WTA

Арина Соболенко вышла в четвертьфинал турнира WTA 1000 в Пекине






«Горький парадокс»: пять знаков Вселенной о том, что вам пора уходить из отношений

Погода в Твери: мокрая осень без аномалий

Халява, плиз: деньги на этой карте доступны детям и подросткам — Голикова обнадежила всех своими словами

Софья Великая: я одержала первую победу в керлингольфе