Skip to content

SnowCoderX/taskManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

taskManager

Проект представляет из себя шаблонный менеджер задач, в данный момент добавлен лишь 1 тип задач, который из себя представляет просто числовые задачи которые имитируют выполнение(прибавляются числа от начального до конечного значения).

ОСОБЕННОСТИ ВЕТОК: master:Первоначальный вариант minimal:Упрощенный вариант без выкрутасов. develop:Добавлены консольные параметры(вызов справки через -h), добавлена сериализация тасок, восстановление воркеров и задач при неожиданном закрытии ПО.

Технологии: Qt, MVC, потоки (Qt) и синхронизация, наследование/полиморфизм, QML.

Задача: Написать приложение с использованием Qt и QML, которое создает и обрабатывает различные задачи в нескольких потоках с отображением статуса задачи и ее прогресса обработки в интерфейсе.

Функциональные требования:

  1. Программа должна быть кроссплатформенной.
  2. Должна быть возможность изменения числа исполнителей (от 1 до 1000). Допустимы ограничения в виде изменения числа исполнителей только если список задач пуст.
  3. Должна быть возможность добавления произвольного числа (от 1 до 1000) новых задач.
  4. Каждому исполнителю должен соответствовать свой поток.
  5. Задачи должны автоматически обрабатываться свободными исполнителями по принципу: одна задача - один исполнитель (один поток).
  6. Обработка задачи представляет собой последовательный вызов функции обработки в задаче пока задача не будет завершена. Завершение задачи может определяться как отдельной функцией, так и проверкой прогресса на 100%.
  7. После завершения обработки задачи, она должна в течении 5 секунд отображаться со статусом «Завершена», после чего должна быть удалена. В ходе этих 5 секунд исполнитель считается занятым этой задачей и приступает к обработке следующей только после удаления задачи.
  8. В текущем решении каждая задача должна производить последовательное увеличение внутреннего счетчика от одного случайного значения до другого. Увеличение производится на произвольную величину (инкремент).
  9. Длительность обработки задачи должна быть в пределах от 5 до 30 секунд (надо подобрать начальное, конечное и инкрементное значения и задержку между вызовами обработки для выполнения данного требования). Допустимы отклонения максимального значения времени обработки до 60 секунд.
  10. При создании задачи ее тип должен выбираться случайно.
  11. В текущем решении тип задачи определяет тип данных, который используется в задаче для инкремента. Типы задач:
  12. char
  13. uchar
  14. short
  15. ushort
  16. int
  17. uint
  18. В ходе выполнения задачи должен обновляться ее прогресс бар и общий прогресс бар всех задач.
  19. Обновление данных в интерфейсе должно происходить только при необходимости.
  20. В любой момент времени завершение программы при закрытии должно происходить в течении 500мс и должно происходить корректно.

Нефункциональные требования:

  1. В интерфейсе должен отображаться список исполнителей и список задач.
  2. Каждый исполнитель в списке исполнителей должен отображать:
  3. номер исполнителя (последовательный уникальный номер начиная с 1),
  4. статус работы (Ожидает, работает над задачей №num).
  5. Каждая задача в списке задач должна отображать:
  6. номер задачи (последовательный уникальный номер начиная с 1),
  7. тип задачи,
  8. статус (ожидает, выполняется исполнителем №num, завершена),
  9. прогресс выполнения в виде прогресс бара с числовым указанием % (от 0 до 100).
  10. В интерфейсе должен быть функционал для быстрого добавления указанного числа задач.
  11. В интерфейсе должен отображаться общий прогресс бар выполнения всех задач.
  12. Прогресс бар у большинства задач должен двигаться плавно, без рывков.
  13. (опционально) Появление и удаление задач должно происходить с анимацией.
  14. Архитектурное решение должно быть расширяемым для добавления новых типов задач с произвольной обработкой (например, с уменьшением чисел или вообще не связанной с числами), но с сохранением требований касательно подсчета прогресса выполнения задачи. Статусы задачи зависят от ее типа (у новой задачи помимо статусов указанных в пункте 3 могут быть еще и свои статусы, например, «Сканирование каталогов», «Поиск файлов», «Подсчет свободного места», …).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages