Service worker

20 000 руб. за проект • наличный расчёт, безналичный расчёт
16 января 2017, 10:52 • 1 отклик • 110 просмотров
Описание задачи:

Разработать систему, способную выполнять неограниченное число предопределенных задач асинхронно в одном дополнительном потоке (AS3 Worker).

Решение:

Необходим контейнер асинхронных задач, каждая из которых должна быть представлены в виде реализации одного и того же интерфейса (IServiceTaskImpl).

В результате, необходимо получить расширяемый контейнер с задачами, в который можно добавить задачу посредством простой реализацией интерфейса IServiceTaskImpl и помещения экземпляра реализации этого интерфейса в контейнер. Крайне важно упростить расширяемость контейнера, сделав создание (и добавление в контейнер) нового типа задачи максимально простым и быстрым с точки зрения разработки.

Весь контейнер и реализации всех задач должны быть описаны в отдельном воркере (служебный воркер).

Выполнение каждой из задач инициируется на стороне основного потока, путем создания объекта задачи, указания приоритета, и передачи дополнительных параметров если таковы требуются для той или иной задачи.

Таким образом, на стороне основного потока каждая задача должна быть представлена классом реализующим интерфейс IServiceTask, наследующим в том числе интерфейс IEventDispatcher для возможности подписки/отписки на события. Интерфейс IServiceTask также должен содержать методы управления задачей, такие как start, stop, cancel и другие методы, в которых может возникнуть потребность в рамках выполнения проекта.

Внутри служебного воркера должна быть организована очередь выполнения задач с приоритетами (LOW (2), MIDDLE (1), HIGH (0)). Соответственно, чередь выполнения задач на стороне служебного воркера должна автоматически организовываться в соответствии с приоритетами.

Подробное описание в приложенном файле. Готовы ответить на любые вопросы по задаче.

Файлы