Java-эффективная структура планирования?

Я прошу прощения за длину этой проблемы, но я подумал, что важно включить достаточные детали, учитывая, что я ищу подходящий подход к моей проблеме, а не простое предложение кода!


Общее описание:

Я работаю над проектом, который требует задач, способных быть «запланированными» на некоторых относительно интервала .

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

Если задача выполняется, она должна быть перенесена, чтобы снова запустить в положении относительно текущего времени (например, в 5 Timesteps). Эта относительная позиция просто сохраняется в виде целочисленного свойства объекта задачи.

Проблема:

Я немного борюсь, чтобы решить, как я должен структурировать это, потому что это немного сложный набор условий поиска для поиска.

Как он стоит, я думаю, что каждый раз, когда таймер увеличивается, мне нужно:

  1. Выполнить задачи в положении «0» в расписании
  2. Повторно добавьте эти задачи в расписание снова на их родственнике Положение (например, задача, которая повторяет каждые 5 шагов, будет возвращена в положение 5)
  3. Каждая группа задач в расписании будет иметь свое «время до того, как выполнение» не будет уменьшена (например, задача в положении 1 будет переходить в положение 0 )

Допущения:

Есть пара предположений, которые могут ограничить возможные решения, которые я могу использовать:

  • Интервал должен быть относительным , не определенным временем и определен Целое число шагов от текущего времени
  • Эти интервалы могут принимать любое целое значение, например не ограничены .
  • Несколько задач май должны быть запланированы для того же временного времени, но их порядок выполнения не важно
  • Все выполнение должно оставаться в одних резьбовых растворах. Подходит из-за других ограничений

Основные вопросы, которые у меня есть:

Как я могу разработать этот график, чтобы работать эффективно? Какие хранилища / коллекции могут быть полезны?

Есть ли я посмотрим другую структуру / подход?

Я ошибаюсь, чтобы увольнять структуру планирования (например, кварц), которые, кажется, больше работают в «реальном» временном домене Нереальный «временной домен?


Большое спасибо за любую возможную помощь. Пожалуйста, не стесняйтесь комментировать для получения дополнительной информации, если необходимо, я редактирую, где это необходимо!

8
задан obfuscation 9 September 2011 в 14:08
поделиться